Javascript读取json,它以一些额外的字符串开头

时间:2014-08-26 16:50:41

标签: javascript jquery ajax json jsonreader

我正在尝试读取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。

2 个答案:

答案 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