2016-12-27 7 views
0

これが変換されない理由は考えられません。文字列と何か関係があると思われますが、np出力が得られます。jsonの文字列をphpの連想配列に変換する

$string = '[{title : "Comp 1 Product",columns : ["Our Vehicle","Features","Their Vehicle"], items : [["dcq","adv","asdvasdv"],["sdv","sdv","sdv"]]},{title : "qwefqw",columns : ["Section 1","Features","Section 2"],items : [["qqwec","qwe","qwegqwev"]]}]'; 

print_r(json_decode($string), true); 

助けてください。

+2

有効なJSONではありません。 JSONでは、プロパティ名を二重引用符で囲む必要があります。 – Barmar

+1

その文字列はどこから来たのですか?ソースを修正してJSONを適切に作成する必要があります。 JSONライブラリを手動で構築するのではなく、JSONライブラリを使用する必要があります。 – Barmar

+1

私はそのような問題をデバッグし、問題の原因を特定する方法を紹介しました。ソースで修正してください。 –

答えて

6

あなたが表示された場合:

<?php 
    header("Content-type: text/plain"); 
    $string = '[{title : "Comp 1 Product",columns : ["Our Vehicle","Features","Their Vehicle"], items : [["dcq","adv","asdvasdv"],["sdv","sdv","sdv"]]},{title : "qwefqw",columns : ["Section 1","Features","Section 2"],items : [["qqwec","qwe","qwegqwev"]]}]'; 
    print_r(json_decode($string), true); 
    print_r(json_last_error()); 
?> 

上記のコードは、JSONと構文エラーである、JSON_ERROR_SYNTAXを意味し、4を返します。 JSONリントでチェックすると、あなたのJSON例外:

prevoew

をあなたが見えるように、それを修正する必要があります。

[{ 
    "title": "Comp 1 Product", 
    "columns": ["Our Vehicle", "Features", "Their Vehicle"], 
    "items": [ 
     ["dcq", "adv", "asdvasdv"], 
     ["sdv", "sdv", "sdv"] 
    ] 
}, { 
    "title": "qwefqw", 
    "columns": ["Section 1", "Features", "Section 2"], 
    "items": [ 
     ["qqwec", "qwe", "qwegqwev"] 
    ] 
}] 

あなたが今持っていることはJavaScriptオブジェクトと無効ですJSON

+2

私はこれを投稿しようとしていました:) +1 – Farkie

+0

@Farkie Thanks mate ... ':)' –

0

無効なjsonとは別に、print_r(json_decode($string), true);は何も印刷しませんが、値を返します。出力に印刷結果を得るには、次のいずれかを行う必要があります。

print_r(json_decode($string)); 

または

echo print_r(json_decode($string), true); 

前者が優れています。

関連する問題