如何解决我无法从json_decode数组中读取值
我尝试通过wordpress中的json传递一些学生数据。数据取自csv文件,并且具有标题行和4行值。我使用发送数据到php
JSON.stringify(inp)
。
数据发送没有问题,我使用json_decode
对其进行解码:$csvdata=json_decode(str_replace("\\","",$_POST['body2']));
-我使用str_replace()
,因为没有它,数据无法正确读取-$csvdata
没问题。我使用wp_send_json($csvdata);
将其发送回我的页面,并且可以在控制台中看到我的数据。但是,当我尝试获取$csvdata
的值时,无论尝试什么,都会得到3 null,null,null data
的结果。
$i=0;
foreach($csvdata as $value) {
$out[$i]=$value->student;
$i++;
}
和
wp_send_json($out);
它应该获取我的“学生”字段数据的值。我几乎尝试了所有操作,但没有结果。每次$out
返回null,null,null
我也尝试$json_decode($_POST['body2'],true)
将数据读取为数组而没有任何运气。还尝试了html_entity_decode()
或str_replace()
的许多组合,但始终没有结果
任何建议?
[edit]我试图像这样手动重新创建我的csvdata:
$data2 = json_decode('[{"student":"1","a1":"0"},{"student":"2","a1":"2"},{"student":"3",{"student":"4","a1":"3"}]');//works
$a=0;
foreach($data2 as $value) {
$out1[$a]=$value->student;
$a++;`
}
wp_send_json($out1);
现在可以正确读取值。我注意到,首先,当我在控制台日志中wp_send_json($ csvdata)出现时,每行的末尾都有额外的...(有圆点),这可能会引起问题,但我不知道该如何解决。 ..
{student: 1,a1: 0,a2: 0,a3: 0,a4: 0,…}
解决方法
经过3天的尝试,我发现错误是因为通过JSON我将元数据和数据一起传递了。因此,我需要将JSON.stringify(inp)替换为JSON.stringify(inp.data),然后一切正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。