将字符串转换为JSON对象php

我从sql查询中得到以下结果:

{"Coords":[

{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},

{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},

{"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"},

{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"},

{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}

]

}

当前是php中的字符串,有没有简单的方法可以将其转换为JSON对象(我知道它已经是JSON形式)。

我需要将其作为对象,以便可以添加额外的项目/元素/对象,例如已经存在的坐标

编辑:对不起,我粘贴了旧的/错误的字符串!

回答:

@deceze说的是正确的,看来您的JSON格式错误,请尝试以下操作:

{

"Coords": [{

"Accuracy": "30",

"Latitude": "53.2778273",

"Longitude": "-9.0121648",

"Timestamp": "Fri Jun 28 2013 11:43:57 GMT+0100 (IST)"

}, {

"Accuracy": "30",

"Latitude": "53.2778273",

"Longitude": "-9.0121648",

"Timestamp": "Fri Jun 28 2013 11:43:57 GMT+0100 (IST)"

}, {

"Accuracy": "30",

"Latitude": "53.2778273",

"Longitude": "-9.0121648",

"Timestamp": "Fri Jun 28 2013 11:43:57 GMT+0100 (IST)"

}, {

"Accuracy": "30",

"Latitude": "53.2778339",

"Longitude": "-9.0121466",

"Timestamp": "Fri Jun 28 2013 11:45:54 GMT+0100 (IST)"

}, {

"Accuracy": "30",

"Latitude": "53.2778159",

"Longitude": "-9.0121201",

"Timestamp": "Fri Jun 28 2013 11:45:58 GMT+0100 (IST)"

}]

}

使用json_decode到的字符串转换成对象(stdClass)或数组:http://php.net/manual/en/function.json-

decode.php

我不明白您所说的 “官方JSON对象” 是什么意思,但是假设您想通过PHP将内容添加到JSON,然后再将其转换回JSON?

假设您具有以下变量:

$data = '{"Coords":[{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}]}';

您应该将其转换为 Object (stdClass):

$manage = json_decode($data);

但是,使用stdClass它比使用PHP-Array更复杂,然后尝试一下(使用结合使用第二个参数true):

$manage = json_decode($data, true);

这样,您可以使用数组函数:http :

//php.net/manual/en/function.array.php

$manage = json_decode($data, true);

echo 'Before: <br>';

print_r($manage);

$manage['Coords'][] = Array(

'Accuracy' => '90'

'Latitude' => '53.277720488429026'

'Longitude' => '-9.012038778269686'

'Timestamp' => 'Fri Jul 05 2013 11:59:34 GMT+0100 (IST)'

);

echo '<br>After: <br>';

print_r($manage);

$manage = json_decode($data, true);

echo 'Before: <br>';

print_r($manage);

array_shift($manage['Coords']);

echo '<br>After: <br>';

print_r($manage);

您想将JSON保存到 数据库文件的 任何机会:

$data = '{"Coords":[{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}]}';

$manage = json_decode($data, true);

$manage['Coords'][] = Array(

'Accuracy' => '90'

'Latitude' => '53.277720488429026'

'Longitude' => '-9.012038778269686'

'Timestamp' => 'Fri Jul 05 2013 11:59:34 GMT+0100 (IST)'

);

if (($id = fopen('datafile.txt', 'wb'))) {

fwrite($id, json_encode($manage));

fclose($id);

}

希望我理解您的问题。

祝好运。

以上是 将字符串转换为JSON对象php 的全部内容, 来源链接: utcz.com/qa/436121.html

回到顶部