文字列は次のとおりです:
$str = <<<EOF{'aid':'21','ctl_a_cpu':'df','ctl_a_ram':'df','ctl_a_disk':'df','ctl_a_fip':'df','ctl_a_os':'c_1_2','ctl_a_os_lang':'c_4_1,c_4_3','comment':'其它要求\',\'呵呵\',\'','total':'1090','typeid':'6'}EOF;$ar = json_decode($str, true);print_r($ar);
json_decode この関数を使用する際の特別な注意事項は何ですか?印刷すると空白になってしまいましたが、別の解決方法を見つけました。でも、json_decode 関数の使い方を知りたいです
先生、あなたの形式は間違っています
json データを出力するためにどのツールを使用したかわかりません
この例を見てみましょう
$str1 =' {"a":21 }'
$str2="{"b":21}"
print_r(json_decode($str1,true)); print_r(json_decode($str2 ,true));
print_r(json_decode($str3,true));
出力結果は Array ([a] => 21) Array ([b] => 21) です。
3 番目の print_r 出力は空白です
json_decode ( string $json [, bool $assoc ] )
パラメータ
json
変換される JSON 文字列形式の文字列デコードされた。
assoc
このパラメータが TRUE の場合、オブジェクトの代わりに配列が返されます。
上記と同様に、この文字列を直接 json_decode します。
json_decode($str, true);
trueを追加しないとオブジェクトに変換されるので注意してください
さて。 。当然のことながら、これは json_decode() で直接処理できないため、手動で変換する必要があります:
$str = <<<EOF{'aid':'21','ctl_a_cpu':'df','ctl_a_ram':'df','ctl_a_disk':'df','ctl_a_fip':'df','ctl_a_os':'c_1_2','ctl_a_os_lang':'c_4_1,c_4_3','comment':'其它要求\',\'呵呵\',\'','total':'1090','typeid':'6'}EOF;$ar = explode("','", substr($str, 2, -2));$result = '';foreach($ar as $v) { $ar_tmp = explode("':'", $v); $result[$ar_tmp[0]] = $ar_tmp[1];}echo '<pre class="brush:php;toolbar:false">';print_r($result);
http://3aj.cn/php/39.html