• 技术文章 >后端开发 >php教程

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

    2016-06-13 10:19:34原创373
    [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数据格式。现要用正则将它替换成,且加引号。

    /(?<={|,)[^:\s]*/is,目前能match出一个二维数据,但replace的话,不行呀,必须得是一个一维数组。

    请教各位大侠。

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

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

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

    想请问一下:用正则(?<={|,)[^:\s]*(?=:)这样来,不行吗??

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

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

    想请问一下:用正则(?<={|,)[^:\s]*(?=:)这样来,不行吗??
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:quot JSON newPrice close zhang
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• PHP面试之常见基础算法(附代码示例)• php语言中使用json的技巧及json的实现代码详解_php实例• PHP的cURL库简介及使用示例_php实例• PHP中数据库单例模式的实现代码分享_php实例• 用PHP+MySQL搭建聊天室功能实例代码_php实例
    1/1

    PHP中文网