ホームページ >バックエンド開発 >PHPチュートリアル >php json_decode null
-----インターネット上--------------
http://webhole.net/2009/08/31/how-to-read-json-data - with-php/ 最終的な解決策は、2012 年 5 月 31 日の 0:38:42 に更新されました
PHP で JSON を解析する方法-----インターネットで見つかりました---------- -
インターネットでたくさん見つけた例が json_encode でした。私が遭遇した状況を書き留めておきます。
[最初の状況] 理由の 1 つは、json_decode の後に何もありません。 json_decode のみがサポートされています utf-8.
iconv('gbk','utf-8', $result_string)、iconv 関数を使用してエンコード形式を変更します。私の場合、それは gbk..utf に変換します。 8.
【その2 この場合】 Array オブジェクトは print_r を使用する必要があり、echo は使用できません。
【3つ目のケース】 後で文字化けします 私の場合はこんな感じです
header("Content-Type: text/html; charset=UTF-8");
php ただ基本的な知識がなく、あまり時間がありません
【その他の状況】
http://php.net/manual/en/function.json-decode で。 php (これは、インターネットからダウンロードした php マニュアル chm には書かれていません。言葉を失いました...) こう書かれています:
例 #3 json_decode() を使用した一般的な間違い 誰もがよく犯す間違い...他のいくつかの例も見てください...
// 次の文字列は有効な JavaScript ですが、有効な JSON ではありません
// 名前と値は二重引用符で囲む必要があります 1. これは次のようになります一重引用符は使用しないでください。正解は $bad_json = '{ "bar": "baz" }' です
// 一重引用符は無効です
$bad_json = "{ 'bar': 'baz' }"; json_decode ($bad_json); // null
// 名前は二重引用符で囲む必要があります。 2. これは、正しい名前は $bad_json = '{ "bar" である必要があることを意味します。 " baz" }'; これだけで数時間を無駄にしてしまいました... 時間がかかりました...
$bad_json = '{ bar: "baz" }'; // null
// 末尾のカンマは許可されません。 3. これは、最後のものにはカンマが必要ないことを意味します。 null
?> ;
json_encode() を使用して中国語を含むコンテンツをエンコードすると、u5c71u4e1c のようなコードが表示されますが、jQuery または json_decode() を使用してデコードする場合は問題ありません。場合によっては、中国語をそのまま表示する必要がある場合もあります。
$code = json_encode( $str );
$code = preg_replace( "#\u([0-9a-f]+)#ie" , "iconv('UCS-2 ', 'UTF-8', Pack('H4', '\1'))" , $code );