在 PHP 中从 JSON 中提取数据失败
Posted
技术标签:
【中文标题】在 PHP 中从 JSON 中提取数据失败【英文标题】:Extracting data from JSON failed in PHP 【发布时间】:2014-07-08 08:21:01 【问题描述】:
"firstName":"sunny",
"religion": "holly":"1",
"bolly":"colly",
"nolly":"only"
,
"lonely":"money",
"ronney":"leone",
"honey":"bunny"
这是我的 JSON。我想从中获取所有数据并将其存储到一些 php 变量或数组中。
我使用以下代码从我的 JSON 中提取数据。我先解码它,然后将它存储在一个数组中..
$val_array = json_decode($jsondata, true);
echo $jsondata;
$AAA = $val_array->firstName;
$BBB = $val_array->religion;
$CCC_id = $val_array->bolly;
$DDD = $val_array->nolly;
$CCC_id = $val_array->lonely;
$DDD = $val_array->ronney;
但它没有给我任何输出。然后我就用了这个。
foreach($data['val_array'] as $item)
echo $item[0];
没有输出。帮忙??
【问题讨论】:
assoc When TRUE, returned objects will be converted into associative arrays.
php.net/manual/en/function.json-decode.php
上面的代码没有任何错误?我可以看到 PHP 应该为您提供错误的许多问题。尝试将error_reporting(E_ALL)
放在脚本的开头。
【参考方案1】:
你把第二个参数弄错了:
$val_array = json_decode($jsondata, true);
$AAA = $val_array['firstName'];
或
$val_array = json_decode($jsondata, false);
$AAA=$val_array->firstName;
【讨论】:
【参考方案2】:您的 JSON 无效。删除最后一个元素后的逗号:
"firstName" : "sunny",
"religion" :
"holly" : "1",
"bolly" : "colly",
"nolly" : "only" # Here
,
"lonely" : "money",
"ronney" : "leone",
"honey" : "bunny" # And here
【讨论】:
@TheJoker json_decode 将返回一个数组,因此您必须使用[]
运算符访问它。改用$AAA = $val_array['firstName'];
我得到了值..但是如何获取宗教数组中的值? @76200【参考方案3】:
您的 JSON 中有错误:
"nolly":"only",
"honey":"bunny",
删除这两行末尾的“,”,然后 json_decode() 将返回一个数组。 如果你想要一个对象,不要将第二个参数传递给 json_decode()
【讨论】:
【参考方案4】:json_decode 默认返回一个对象,但由于您将第二个参数设置为 true,因此您将获得一个包含信息的关联数组。
这基本上归结为这样一个事实,即您不需要填写第二个参数并获得所需的对象,或者当您将参数设置为true时使用数组。
稍微阅读一下 PHP.net 对您的进一步参考很有帮助,因为他们的文档很好地呈现,通常被其他人评论并提供有用的建议并且也很干净!
【讨论】:
【参考方案5】:$val_array = json_decode($jsondata, true);
$m1=$val_array['firstName'];
$m2=$val_array['lonely'];
$m3=$val_array['ronney'];
$m4=$val_array['honey'];
$m4=$val_array['religion']['holly'];
$m5=$val_array['religion']['bolly'];
$m6=$val_array['religion']['nolly'];
通过使用它,我们不必使用 foreach 循环或内部循环来访问数据。中提琴!
【讨论】:
最好解释一下为什么你的代码可以解决问题。见How to Answer。以上是关于在 PHP 中从 JSON 中提取数据失败的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)
在 PHP 中从 /Filter /FlateDecode PDF 流中提取数据
在 PHP CodeIgniter foreach 循环中从数据库中提取和更新数据