2

我在将 JSON 数据作为 JavaScript 中的数组处理时遇到问题。我的 JSON 数组如下所示:

    MyArray([['one','two','three'],['four','five','six']]);

在 JS 中,我尝试使用这种方法接收它:

   $.getJSON('http://test.com/array.json', function(data) {
        alert(data);
   }

但我没有得到任何数据。如果我正在使用

$get('http://test.com/array.json', function(data) 

而不是 $getJSON 然后我将我的数据作为字符串接收。

任何帮助将不胜感激。

4

3 回答 3

2

您的数据不是 JSON,而是JSONPMyArrayJSONP 回调函数在哪里。

从理论上讲,您正在与之交谈的 Web 服务应该支持一个callback=参数,该参数将设置MyArray名称。

如果你只是添加&callback=?,那么 jQuery 应该会自动生成一个随机命名的回调函数,然后它将success使用所需的数据调用你的函数。

于 2012-09-17T12:25:29.767 回答
1

这不是 JSON :

 MyArray([['one','two','three'],['four','five','six']]);

JSON 字符串不仅仅是您要评估的一些 javascript,而且必须以[or开头{

看看规范: http: //www.json.org/

一开始您似乎有一个构造函数,这甚至可能不是 JSONP。

我建议你制作一个标准的 JSON 数组:

"[['one','two','three'],['four','five','six']]"

如果需要MyArray实例,然后使用构造函数客户端。

于 2012-09-17T12:21:49.850 回答
0

您的 JSON 无效。它的格式仍然可以使用。使用该get方法,然后尝试以下操作:

$.get('http://test.com/array.json', function(data) {
  data = data.replace("MyArray(", '"');
  data = data.replace(");", '"');
  var myData = JSON.parse(data); // Converted JSON to object.
}
于 2012-09-17T12:27:06.807 回答