出于某种原因,我必须像这样使用 JSON:
php代码
$json = json_decode([{
"key":1812,
"ticks":0,
"events":"7F7E7F7E7F7E7F7E7F7E7F7E7F7E",
"s1a":"011A00002066C0D9",
"s1c":"011C0149040901496650002830000000000000023344000043410000000300000004C5BD",
"s46":"014600283000CA8D","s10":"011000287182943B",
"s9a":"019A0000000018000000000000000000DC69",
"version" : "18.05"
}]);
// and use $json in loop to populate the table...
那对方括号不允许我在 php 中使用它做任何事情。我的编辑器显示解析错误。我在js中解决了这个问题,如下所示:
var data = json[0];
var i;
for(i=0; i<json.length; i++){
var html = '';
html += '<td>' + json[i]["key"] + '</td>'
+ '<td>' + json[i]["ticks"] + '</td>'
+ '<td>' + json[i]["events"] + '</td>'
+ '<td>' + json[i]["s1a"] + '</td>'
+ '<td>' + json[i]["s1c"] + '</td>'
+ '<td>' + json[i]["s46"] + '</td>'
+ '<td>' + json[i]["s9a"] + '</td>'
+ '<td>' + json[i]["version"] + '</td>';
}
$(html).appendTo('#bundle');
//var jsonEncoded = JSON.parse(data);
console.log(json.length);*/
但是这样使用好像不太好。我该如何在 php 中解决这个问题?
最佳答案
您可以简单地在 PHP 中使用 json_decode
来实现此目的,例如:
<?php
$data = json_decode($json);
var_dump($data[0]->key);
var_dump($data[0]->events);
您只需使用索引0
即可访问它们。 Demo
编辑:您的代码的问题是您没有将 json 字符串括在引号中。你应该像这样使用它:
$json = json_decode('[{
"key":1812,
"ticks":0,
"events":"7F7E7F7E7F7E7F7E7F7E7F7E7F7E",
"s1a":"011A00002066C0D9",
"s1c":"011C0149040901496650002830000000000000023344000043410000000300000004C5BD",
"s46":"014600283000CA8D","s10":"011000287182943B",
"s9a":"019A0000000018000000000000000000DC69",
"version" : "18.05"
}]');
关于javascript - 为什么 json 响应有方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684414/