0

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

4

2 回答 2

3

我没有足够的分数来评论约翰史密斯的回答,但他走在正确的轨道上,除了一个小错误可能是因为他习惯于用 Python 编程:-)

正则表达式应该是:/^throw.*;\s*/而不是"^throw.*;\s*"

不要使用双引号,而是在正则表达式的开头和结尾使用 /。那会成功的。

于 2014-08-26T19:10:36.367 回答
0

在一些 api 文档中阅读此内容

JSON 安全字符串

GET 请求通过在 JSON 文本之前的行中包含安全字符串来保护。该字符串通常看起来像“throw 'allowIllegalResourceCall is false.';”。要删除此字符串,应使用正则表达式。例如,在 python 中可以使用:

json = re.sub(r"^throw.*;\s*","",json)

所以你只需要用“”替换字符串并在正则表达式周围使用斜杠。

alert($.getJSON(ur).replace(/^throw.*;\s*/,"");

来源:https ://developers.jivesoftware.com/api/v3/cloud/rest/index.html

于 2014-08-26T16:54:09.757 回答