Rumah > Soal Jawab > teks badan
Gunakan file_get_contents($url); untuk mengembalikan json itu tidak boleh dihuraikan menggunakan json_decode
淡淡烟草味2017-05-16 13:00:39
Masalah ini telah diselesaikan oleh saya sendiri Data yang dikembalikan oleh pihak ketiga adalah ascll, jadi ia perlu ditukar kepada format utf-8. Ia tidak ada kena mengena dengan json_decode
大家讲道理2017-05-16 13:00:39
Anda perlu mengesahkan sama ada format itu betul, jangan muat naik kod di BB:
<?php
function treatJsonString($string)
{
$jsonData = json_decode($string, true);
switch (json_last_error()) {
case JSON_ERROR_NONE:
return $jsonData;
break;
case JSON_ERROR_DEPTH:
print '[Error] - Maximum stack depth exceeded' . PHP_EOL;
break;
case JSON_ERROR_STATE_MISMATCH:
print '[Error] - Underflow or the modes mismatch' . PHP_EOL;
break;
case JSON_ERROR_CTRL_CHAR:
print '[Error] - Unexpected control character found' . PHP_EOL;
break;
case JSON_ERROR_SYNTAX:
print '[Error] - Syntax error, malformed JSON' . PHP_EOL;
break;
case JSON_ERROR_UTF8:
print '[Error] - Malformed UTF-8 characters, possibly incorrectly encoded' . PHP_EOL;
break;
default:
print '[Error] - Unknown error' . PHP_EOL;
break;
}
return null;
}
$jsonString = '{"x":123,"s":[{"a":"1"}]';
var_dump(treatJsonString($jsonString));
滿天的星座2017-05-16 13:00:39
Periksa dahulu sama ada json anda dalam format json biasa
Kemudian semak sama ada fail php anda adalah utf-8 tanpa BOM
Saya pernah mengalami masalah yang sama sebelum ini, dan ia akan baik-baik saja selepas mengalih keluar BOM~
世界只因有你2017-05-16 13:00:39
json_decode($json, true)
Dengan benar, ini bermakna ia akan dihuraikan ke dalam tatasusunan php
为情所困2017-05-16 13:00:39
Pertama, pastikan Json anda terlepas dengan cara lain Jika tidak, anda boleh menggunakan alat pengesahan format Json untuk menyemak sama ada terdapat masalah.
Alat pengesahan format Json dalam talian
http://www.bejson.com/