2010-04-20 113 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