php将字符串转换json对象数组对象数组_将字符串转换为JSON对象php

小编典典

@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:
';

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 '
After:
';

print_r($manage);

删除第一项:

$manage = json_decode($data, true);

echo 'Before:
';

print_r($manage);

array_shift($manage['Coords']);

echo '
After:
';

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);

}

希望我理解您的问题。

祝好运。

2020-05-29

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值