我正在尝试读取json url,但JSON在JSON启动之前出现了一些额外的字符串
JSON脚本就像:
throw 'allowIllegalResourceCall is false.';
{
"name":"mkyong",
"age":30,
"address":{
"streetAddress":"88 8nd Street",
"city":"New York"
},
"phoneNumber":[
{
"type":"home",
"number":"111 111-1111"
},
{
"type":"fax",
"number":"222 222-2222"
}
]
}
我正在尝试使用以下javascript阅读此JSON:
<script>
$(document).ready(function() {
$('.button').click(function(){
var ur= "http://json_url";
alert(ur);
alert(JSON.stringify($.getJSON(ur)));
});
});
</script>
有没有办法使用java script / jQuery或ajax读取这种类型的Json。
答案 0 :(得分:3)
我没有足够的分数来为John Smith添加评论他的答案,但他是在正确的轨道上,除了一点点错误,可能是因为他习惯用Python编程: - )
正则表达式应为:/^throw.*;\s*/
而不是"^throw.*;\s*"
不使用双引号,而是在正则表达式的开头和结尾使用/。 这样就可以了。
答案 1 :(得分:0)
在某些api doc
中阅读此内容JSON安全字符串
通过在JSON文本之前的行上包含安全字符串来保护GET请求。该字符串通常看起来像&#34; throw&#39; allowIllegalResourceCall是false。&#39 ;;&#34;。要删除此字符串,应使用正则表达式。例如,在python中可以使用:
json = re.sub(r"^throw.*;\s*","",json)
所以你只需要用&#34;&#34;替换字符串。并在regExp周围使用斜杠。
alert($.getJSON(ur).replace(/^throw.*;\s*/,"");
来源:https://developers.jivesoftware.com/api/v3/cloud/rest/index.html