JSON中有以“-1”命名的对象

4

我需要从一个网站获取一些JSON并解析它。问题在于对象的名称为“-1”、“-2”等。

当我尝试解析它时,Firebug会返回“TypeError:obj未定义 length = obj.length”

Chrome也会返回类似的消息,“Uncaught TypeError:无法读取未定义属性'length'”

以下是JSON的片段供参考:

{
  "-1": {
     "number": 47,
     "properties": [
       [

这里是我尝试使用的代码。

$.getJSON("http://www.website.com/builds?select=-1&select=-10",function(data){
  $.each(data.-1, function(info,value){

如果我下载JSON文件,将其保存在本地并将“-1”重命名为“one”,将“-2”重命名为“two”,那么它就可以正常工作。例如,JSON变成了:
{
  "one": {
     "number": 47,
     "properties": [
       [

我的代码变成了

$.getJSON("C:\json.json",function(data){
    $.each(data.one, function(info,value){

这个方法虽然可行,但增加了另一个复杂的步骤。
有没有办法在原始JSON上进行解析(因为它是从服务器自动生成的,而且经常更改),或者我必须尝试弄清楚如何在解析之前本地保存并更改对象名称?
1个回答

7

data.-1 必须使用方括号来引用字符串。

data["-1"]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接