2017-06-06 57 views
2

工作,我有我有編碼的,像這樣json_decode不會對我的字符串

{ 
"id": "", 
"steps": [ 
      { 
     "target": "purchase_order_items_itemmaster_id", 
     "title": "", 
     "placement": "", 
     "content": "", 
     "xoffset": "", 
     "yoffset": "" 
       } 
     ] 
} 
$JSONData = json_encode($finalData,JSON_PRETTY_PRINT); 

我藉此JSON數據並將其存儲在一個文件中,像這樣

File::put("path","var tour = \n [ \n\t $JSONData \n ];"); 

JSON對象,看起來是這樣的文件

var tour = 
[ 
    { 
    "id": "", 
    "steps": [ 
     { 
      "target": "purchase_order_items_itemmaster_id", 
      "title": "", 
      "placement": "", 
      "content": "", 
      "xoffset": "", 
      "yoffset": "" 
     } 
    ] 
} 
]; 

現在,在我讀回來形成像這樣

0123第二線
[ 
    { 
    "id": "", 
    "steps": [ 
     { 
      "target": "purchase_order_items_itemmaster_id", 
      "title": "", 
      "placement": "", 
      "content": "", 
      "xoffset": "", 
      "yoffset": "" 
     } 
    ] 
} 
]; 

問題是,當我想它解碼回到它不會發生,這就是我正在嘗試的是,根據預期的輸出

$lines = file_get_contents("path",NULL,NULL,10); 

$a = json_decode($lines); 

我們做一個$應該有解碼的數據,但它有空。

有人能指出錯誤嗎?

+0

HTTP ://php.net/manual/en/function.json-las t-error.php它打印什麼? – varuog

回答

2

傳遞的第二個參數true用於遞歸解碼

$a = json_decode(chop($lines,";"),true); 

檢查PHP mannual這裏json_decode

+0

已經試過,不行! –

+0

@UsamaRehan我編輯了我的答案,請試試這個 –

1

這將是

$str = file_get_contents('http://example.com/example.json/'); 
$json = json_decode($str, true); // decode the JSON into an associative array 

查看信息 Parsing JSON file with PHP

+0

已經嘗試過了,不起作用! –

3

我相信這個問題是你從文件中讀回來的JSON結尾的分號。嘗試嘗試json_decode之前砍其關閉:

$a = json_decode(rtrim($lines, ";")); 
+0

是無效的json數據可能導致json_decode失敗 –

1

嘗試在文件中的數據保存像

$fp = fopen('path', 'w'); 
fwrite($fp, json_encode($JSONData)); //if $JSONData is in string 
fclose($fp); 

,而不是

File::put("path","var tour = \n [ \n\t $JSONData \n ];"); 

//和念想

// Read JSON file 
$json = file_get_contents('path'); 

//Decode JSON 
$json_data = json_decode($json,true); 

//Print data 
print_r($json_data); 
相關問題