Aco*_*orn 1 php ajax jquery json
我遇到了为客户端使用特定Feed的问题.他们给了我一个远程URL,响应是一个JSON字符串,如下所示:
{"affiliate": [
{"ID":"1", "COUNTRY":"EXAMPLE", "NETWORK":"EXAMPLE", "PRIMARY":"EXAMPLE"},
{"ID":"2", "EXAMPLE":"EXAMPLE", "COUNTRY":"EXAMPLE", "NETWORK":"EXAMPLE", "PRIMARY":"EXAMPLE"},
{"ID":"3", "TITLE":"EXAMPLE", "COUNTRY":"EXAMPLE", "NETWORK":"EXAMPLE", "PRIMARY":"EXAMPLE"}
]}
Run Code Online (Sandbox Code Playgroud)
例如,我缩小了显示格式的提要,但实际上有数百个关联公司.无论如何,我想使用PHP json_decode,因为最后,我需要在关联数组中使用这些联属会员.
我有这样的东西,但我最终得到了原始字符串,而json_decode实际上并没有将它解析为关联数组.
$request_url = "http://exampleurl.com/feed"; //returns feed like above
$json = file_get_contents($request_url, true); //getting the file content
$decode = json_decode($json, true);
print_r($decode);
Run Code Online (Sandbox Code Playgroud)
看起来我需要在Feed本身中保留"\n"字符,但在使用时会被删除:
file_get_contents
Run Code Online (Sandbox Code Playgroud)
无论如何,我想你知道我在追求什么,我只是不确定我做错了什么.我提前感谢你的帮助.我已经尝试过将jquery与jsonp一起使用,但这种方式会更理想,因为我之后需要对数组进行排序,而且不需要异步.
橡子
您的Feed可能包含unicode文本.尝试:
$decode = json_decode(addslashes($json), true)
Run Code Online (Sandbox Code Playgroud)
更新:
解决了这个问题.\'s在json数据中json_decode存在无法正确处理的实例.要解决这个问题,你需要双倍逃避\.这就是我做的.
<?php
error_reporting(E_ALL);
$request_url = 'http://midas.glam.com/publisher_directory_data?network=glam&country=US&publish=Y';
$json = file_get_contents($request_url);
$json = str_replace('\\', '\\\\', $json);
$decode = json_decode($json, true);
var_dump($decode);
Run Code Online (Sandbox Code Playgroud)