0

我有一个很大的 JSON 对象,里面有很多数据。我想从中打印出特定的数据位,但似乎找不到打印语句的正确语法。

这是 json 对象的第一位,因此您可以看到结构:

{"response":{"status":"OK","advertisers":[{"id":26243,"code":null,"name":"Tego","state":"inactive","default_brand_id":null,"remarketing_segment_id":null,"lifetime_budget":null,"lifetime_budget_imps":null,"daily_budget":null,"daily_budget_imps":null,"enable_pacing":null,"profile_id":508487,"control_pct":0,"timezone":"PST8PDT","last_modified":"2011-08-11 04:35:39","stats":null,"billing_internal_user":null,"billing_address1":"","billing_address2":"","billing_city":"","billing_state":"","billing_country":"","billing_zip":"","default_category":{"id":"5","name":"Computers and Electronics"},"default_currency":"USD","labels":[{"id":"1","name":"Salesperson","value":"Kurt Mackey"},{"id":"3","name":"Account Manager",}],"use_insertion_orders":false,"time_format":"12-hour","default_brand":null},

我想返回第一个广告商的 ID(应该是 26243)。

我正在尝试使用以下语句将其打印出来:

打印 $result->response->advertisers[0]->id

但它似乎没有工作。我得到一个空白的白页。

我究竟做错了什么?

4

2 回答 2

1

您需要先用 解码字符串json_decode($jsonString)。之后,您将能够通过您引用的打印语句访问不同的属性。

$json = '{"response":{"status":"OK","advertisers":[{"id":26243,"code":null,"name":"Tego","state":"inactive","default_brand_id":null,"remarketing_segment_id":null,"lifetime_budget":null,"lifetime_budget_imps":null,"daily_budget":null,"daily_budget_imps":null,"enable_pacing":null,"profile_id":508487,"control_pct":0,"timezone":"PST8PDT","last_modified":"2011-08-11 04:35:39","stats":null,"billing_internal_user":null,"billing_address1":"","billing_address2":"","billing_city":"","billing_state":"","billing_country":"","billing_zip":"","default_category":{"id":"5","name":"Computers and Electronics"},"default_currency":"USD","labels":[{"id":"1","name":"Salesperson","value":"Kurt Mackey"},{"id":"3","name":"Account Manager",}],"use_insertion_orders":false,"time_format":"12-hour","default_brand":null}'
$jsonObj = json_decode($json);
print_r($jsonObj);
于 2012-05-01T09:53:48.753 回答
0

您需要重新验证您的 json 数据。因为它是在对 json 数据进行一些修改后为我找到的。

"labels":[{"id":"1","name":"Salesperson","value":"Kurt Mackey"},{"id":"3","name":"客户经理", }]

参见“标签1 ”。它没有“标签[0]”的价值。

尝试Json Schema PHP 验证器

    <?php
$json = '{"response":{"status":"OK","advertisers":[{"id":26243,"code":null,"name":"Tego","state":"inactive","default_brand_id":null,"remarketing_segment_id":null,"lifetime_budget":null,"lifetime_budget_imps":null,"daily_budget":null,"daily_budget_imps":null,"enable_pacing":null,"profile_id":508487,"control_pct":0,"timezone":"PST8PDT","last_modified":"2011-08-11 04:35:39","stats":null,"billing_internal_user":null,"billing_address1":"","billing_address2":"","billing_city":"","billing_state":"","billing_country":"","billing_zip":"","default_category":{"id":"5","name":"Computers and Electronics"},"default_currency":"USD","labels":[{"id":"1","name":"Salesperson","value":"Kurt Mackey"},{"id":"3","name":"Account Manager","value":null}],"use_insertion_orders":false,"time_format":"12-hour","default_brand":null}]
}}';

$result = json_decode($json);
print $result->response->advertisers[0]->id;
于 2012-05-01T10:21:00.917 回答