2012-09-17 68 views
2

我在使用JavaScript作为数组处理JSON数据时遇到了问题。 我JSON阵列看起来像这样:JSON数据到JavaScript数组

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然后我收到我的数据作为字符串。

任何帮助将不胜感激。

+0

也许respnse不是**有效** JSON?否则,请尝试使用$ .getJSON和var parsedJSON = JSON.parse(data); – benqus

+1

在[http://jsonlint.com/](http://jsonlint.com/)验证您的JSON – Tom

回答

1

这绝不是JSON:

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

JSON字符串不是简单一些JavaScript要评估,但必须由[{启动。

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

你似乎在首先要有一个构造函数,这可能甚至没有JSONP。

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

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

然后使用构造客户端,如果你需要一个实例。

2

您的数据不是JSON,但是JSONP,其中是JSONP回调函数。

理论上你说的对Web服务应该支持callback=参数,它会是什么设置名。

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

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. 
}