我在php中使用JSON解析器来存储一些存储有关庄园的信息的API.我遇到了解析的问题,因为它返回了我的NULL vualue而不是数组或对象.简单的JSON代码可以很好地解析,但是:
{"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}]}
Run Code Online (Sandbox Code Playgroud)
我得到:NULL
虽然像http://json.parser.online.fr/这样的在线解析器正在完成这项工作.
我使用php内置函数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);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如果在其他在线解析器中解析了相同的JSON字符串,则会出现字符编码问题,请尝试使用utf8_encode转换先前的字符串:
$new=(json_decode(utf8_encode($str), true));
Run Code Online (Sandbox Code Playgroud)
正在解码的json字符串.
此功能仅适用于UTF-8编码数据.