我在做PHP的JSON解析器的一些存儲有關遺產的信息的API。我遇到了解析問題,因爲它返回的是NULL vualue而不是數組或對象。簡單的JSON代碼是很好的解析,但這樣的:Json to php,json_decode返回NULL
{"success":true,"totalCount":1,"data":[{"id":996944,"listingId":"2/2089/OMW","mlsId":null,"swoId":null,"sectionName":"ApartmentRental","geoLat":50.06442971278027,"geoLng":19.953176730749647,"country":{"id":34,"name":"Polska","code":"PL"},"location":{"id":42955,"name":"/Małopolskie/Kraków/Kraków-Śródmieście","province":"Małopolskie","locality":"Kraków","quarter":"Kraków-Śródmieście"},"street":{"id":138781,"name":"Hugona Kołłątaja","fullName":"ul. Hugona Kołłątaja"},"foreignStreet":null,"foreignLocation":null,"contractType":"Exclusive","ownershipType":"Mortgage","groundOwnershipType":null,"isSpecial":true,"price":{"amount":2700,"currency":"PLN"},"priceBeforeReduction":null,"dateCreated":"2011-10-22 20:32:35","lastUpdated":"2011-10-25 11:51:09","actualisationDate":"2011-10-22 20:32:34","statusChangeDate":"2011-10-22 20:32:34","images":[{"id":6514430},{"id":6514431},{"id":6514432},{"id":6514433},{"id":6514434},{"id":6514435},{"id":6514436},{"id":6514437},{"id":6514438},{"id":6514439},{"id":6514440},{"id":6514441},{"id":6514442},{"id":6514443}],"licenceNumber":null,"description":"Do wynajęcia piękne, przestronne mieszkanie w wysokim standardzie, świeżo po remoncie przy ulicy Hugona Kołłątaja w Krakowie. Znajduje się w bardzo pięknej z zewnątrz i wewnątrz kamienicy. Bardzo dobra komunikacja, duża powierzchnia 85m2 i wysoki standard wykończenia dają poczucie komfortu. Bardzo blisko Rynku Głównego, Hali Targowej i Galerii Kazimierz. Dzięki bardzo dobrze rozwiniętej komunikacji miejskiej możliwość szybkiego dostania się w każde miejsce Krakowa. Blisko wiele punktów handlowych i usługowych.\n\nMieszkanie składa się 3 odzielnych pokoi, przedpokoju, kuchni oraz 2 łazienek i balkonu. Jest możlwość umeblowania mieszkania według Państwa preferencji na koszt Właściciela. Ogrzewanie własne samodzielne. Możliwość podłączenia Internetu i telefonu.\n\n","englishDescription":null,"russianDescription":null,"parentListingId":null,"totalArea":85,"priceM2":{"amount":31.76,"currency":"PLN"},"noOfFloors":null,"floorNo":null,"furnished":true,"auctionStartingPrice":null,"auctionFrom":null,"auctionTo":null,"openDaysFrom":null,"openDaysTo":null}]}
我得到:NULL
儘管像http://json.parser.online.fr/在線解析器做的工作就好了。
我正在使用php內置funcion json_decode,還有一些來自php.net,由用戶完成。
這裏是我的PHP代碼:
$url="url_to_json";
$str=file_get_contents($url);
$str = substr($str, 1, strlen($str) - 2);
$str = preg_replace("/([a-zA-Z0-9_]+?):/" , "\"$1\":", $str);
$new=(json_decode($new, true));
var_dump($new);
任何想法?
爲什麼不直接使用'json_decode()'直上文件的內容?其他代碼是什麼? – alex
這是因爲unicode字符的名字(小波蘭/克拉科夫/克拉科夫 - Śródmieście)。 json_last_error()很可能會返回JSON_ERROR_UTF8。不是問題的答案,但希望這會幫助 –
@Darhazer,是不是你引用的值? –