我已经拔头发好几天了,我想我只是再也看不到了。希望其他人可能有比我认为更简单的解决方案:-/
我有以下JSON代码:
{
"status":"success",
"data":{
"first_name":"Paul",
"custom_fields":[
{
"id":55112,
"name":"EmailSoSoLead",
"type":"text",
"description":"",
"value":"huh@gmail.com"
},
{
"id":55113,
"name":"TelNrSoSoLead",
"type":"number",
"description":"",
"value":4654566465456
},
{
"id":116162,
"name":"OrderAmount",
"type":"number",
"description":"",
"value":6956
},
],
"tags":[
{
"id":1705169,
"name":"RealtorLeadComplete"
},
{
"id":3542812,
"name":"cbs_trialcode_received"
}
]
}
}
我正在尝试从自定义字段中获取电子邮件地址。
我几乎尽力了。
获取标签很容易,但是我在特定的自定义字段上遇到了麻烦。
foreach($json_obj->data->custom_fields as $mc_uid_cuf_data)
{
foreach($mc_uid_cuf_data as $key => $value)
{
echo $key . ': ' . $value;
...
效果很好,打印效果很好。但是我需要具体的。
我尝试过:
if (in_array('EmailSoSoLead', $mc_uid_cuf_data)) {
还有这个
if ($key == "name" && $value == "EmailSoSoLead")
$email = $json_obj->data->custom_fields->value;
我的JSON被解码为对象,而不是关联数组:
$json_obj = json_decode($server_output);
说实话,我现在已经做了很多尝试,现在我基本上是在空白拍摄,太困惑了。有人吗?
答案 0 :(得分:0)
因为您正在测试一个属性,然后尝试获取另一个属性的值,但它们都位于数组中。
例如,捕获外循环的索引并将其用于您试图捕获的电子邮件地址中
foreach($json_obj->data->custom_fields as $occ => $mc_uid_cuf_data) {
foreach($mc_uid_cuf_data as $key => $value) {
echo $key . ': ' . $value;
if ($key == "name" && $value == "EmailSoSoLead")
$email = $json_obj->data->custom_fields[$occ]->value;
...