2010-04-20 151 views
0

我有以下的JSON格式代替双引号在PHP解析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 
     ) 
    ) 
) 

请帮我如何,我会插入值双引号? 谢谢

回答

2

实际上,false在json中是有效的布尔值,所以json_decode正确。

如果你想让“假”为字符串,你的原始json也应该是“假”。

+0

但我无法控制json格式,因为我从外部服务器取得 – hunt 2010-04-20 11:52:54

+0

实际上,您并不需要将json自己更改为“false”,您只需使用“false”而不是如果你测试了'true',你可以'if(json [“result”]){...}'或'if(json [“isworking”]) {...}' – YOU 2010-04-20 11:59:27

+0

雅是多数民众赞成真正的我可以用false替换false,但问题是我将如何在我的代码中做到这一点?如何更换它? – hunt 2010-04-20 12:04:05