Home  >  Article  >  Backend Development  >  [PHP]将JSON模型的数据,替换成JSON数据,该如何解决

[PHP]将JSON模型的数据,替换成JSON数据,该如何解决

WBOY
WBOYOriginal
2016-06-13 10:19:34853browse

[PHP]将JSON模型的数据,替换成JSON数据
{data:[{code:"现货黄金",newPrice:"1662.3",hight:"0",low:"0",buy:"1662.3",sell:"r1663.3",zhang:"r4.75",date:"4:59:40",open:"0",close:"1657.55"}, {code:"香港黄金",newPrice:"15384",hight:"0",low:"0",buy:"15384",sell:"r15390",zhang:"r44",date:"2:59:55",open:"0",close:"15340"}, {code:"现货白银",newPrice:"31.25",hight:"0",low:"0",buy:"31.25",sell:"r31.31",zhang:"r0.17",date:"4:56:10",open:"0",close:"31.08"}, {code:"现货白金",newPrice:"1566.75",hight:"0",low:"0",buy:"1566.75",sell:"r1576.75",zhang:"r2.01",date:"3:29:35",open:"0",close:"1564.74"}, {code:"现货钯金",newPrice:"677.23",hight:"0",low:"0",buy:"677.23",sell:"r684.23",zhang:"r9.54",date:"3:29:35",open:"0",close:"667.69"}]}


大家看好了,这是具有一个JSON数据的模型,只是键名没有引号,所以json_decode会认为它是非法的JSON数据格式。现要用正则将它替换成,且加引号。

/(?
请教各位大侠。

------解决方案--------------------

PHP code
------解决方案--------------------
$json=preg_replace('/(,|,?\s*?{)\b(\w+):/', '$1"$2":',$json);
print_r(json_decode($json,true));

------解决方案--------------------
还是老大威武
2楼的修改下就可以了 ({|,)([^:\s]*)(?=:)
探讨

楼上的,非常棒,是我要的结果。

想请问一下:用正则(?

------解决方案--------------------
探讨

楼上的,非常棒,是我要的结果。

想请问一下:用正则(?
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn