次のように 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 を返します。 }
まず、結果が有効な json であるかどうかを必ず確認してください。
次に、json_decode を使用してオブジェクトを取得します