curl を使用して GraphQL から返されたオブジェクトにアクセスする
P粉615829742
P粉615829742 2024-02-26 18:09:38
0
1
432

次のように GraphQL/curl を使用してデータを返しました:

{
  "データ" : {
    「出版社」: {
      「契約」: {
        "合計数" : 11、
        「カウント」: 1、
        "結果リスト" : [

resultList 配列を取得したいのですが、$result->data を実行して最初のオブジェクトに移動しようとすると、「警告: 文字列のプロパティ 'data' を読み取ろうとしています」というエラーが発生し続けます。私が何を間違えたのでしょうか?

curl リクエストの変数は $result です。

更新: デコードを試みましたが、返されたデータは INT 型ですか?何をするか?

関数 getData($data_String){

    $endpoint = "https://programs.api.cj.com/query";
    $authToken = "パス";
    $qry = '{"query":"{ Publisher { Contracts(publisherId: \"xxxxxxx\", 制限: 1, フィルター: {advertiserId: \"'.$advertiser_id.'\"}) { totalCount count resultList { startTime endTime status adviceerId projectTerms { id namespecialTerms { name body } isDefault actionTerms { id actionTracker { id name description type } lockingMethod { type periodInDays } PerformanceIncentives {閾値 { type value } 報酬 { type CommissionType value } Currency } Commissions { ランク状況 { id name } itemList { ID 名 } PromotionProperties { ID 名 } rate { 型 値 通貨 } } } } } } }","変数":null}';

    $headers = 配列();
    $headers[] = 'コンテンツタイプ: application/json';
    $headers[] = '認証: ベアラー '.$authToken;

    $ch =curl_init();

    curl_setopt($ch, CURLOPT_URL, $endpoint);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $qry);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $result =curl_exec($ch);


    if (curl_errno($ch)) {
        echo 'エラー:' .curl_error($ch);
    }

    カール_クローズ($ch);

    $data = json_decode($result);


    $data を返します。

}

P粉615829742
P粉615829742

全員に返信(1)
P粉955063662

まず、結果が有効な json であるかどうかを必ず確認してください。

次に、json_decode を使用してオブジェクトを取得します

$結果 = json_decode($result);
if (is_object($result)) {
  if (!empty($result->data->publisher->contracts->resultList)) {
     $resultList = $result->データ->発行者->契約->結果リスト;
  }
} それ以外 {
  // ログか何か
   error_log("json デコードリターン: " .print_r($result, true))
}
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート