【问题标题】:replace double quotes to parse JSON in PHP替换双引号以在 PHP 中解析 JSON
【发布时间】:2010-04-20 11:42:13
【问题描述】:

我有以下 json 格式

{
    "status": "ACTIVE",
    "result": false,
    "isworking": false,
    "margin": 1,
    "employee": {
        "111": {
            "val1": 5.7000000000000002,
            "val2": "9/2",
            "val3": 5.7000000000000002 
        },
        "222": {
            "val1": 31.550000000000001,
            "val2": "29/1",
            "val3": 31.550000000000001 
        } 
    }
} 

当我尝试使用 php 解码上述 json 响应时,问题是什么

json_decode($res,true) { true param for associative array } 

我得到以下结果,因为像 "result":false 这样的字段很少不是 "result":"false",即在许多地方,json 的值中缺少双引号。查看 val1 和 val3 字段

在php中解码后的结果数据(关联数组)

Array ( 
        [status] => > ACTIVE [result] => > [isworking] => > [margin] => > 1 [employee] => > Array (
        [111] => > Array ( 
            [val1] => > 5.7 [val2] => > 9/2 [val3] => > 5.7 
        ) 
        [222] => > Array ( 
            [val1] => > 31.55 [val2] => > 29/1 [val3] => > 31.55 
        ) 
    ) 
) 

请帮助我如何在值中插入双引号? 谢谢

【问题讨论】:

    标签: php jquery json parsing


    【解决方案1】:

    实际上,false 是 json 中的有效布尔值,因此 json_decode 正确。

    如果你想要 "false" 作为字符串,你的原始 json 也应该是 "false"。

    【讨论】:

    • 但我无法控制 json 格式,因为我从外部服务器获取它
    • 实际上,您并不需要将json本身更改为"false",您只需要在代码中使用false而不是"false",如果您测试true ,你可以只做if (json["result"]) {...}if (json["isworking"]){ ... }
    • 是的,我可以用“false”替换false,但问题是我将如何在我的代码中做到这一点?怎么换?
    • 我的意思是,您不需要在 json 中将 false 替换为 "false"。您的代码需要更改才能使用false,而不是"false",您能否使用该json 发布一些代码?
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 2017-03-12
    • 2014-05-28
    • 2015-02-27
    • 2015-10-04
    相关资源
    最近更新 更多