对象名为“-1”的JSON

时间:2013-01-24 20:00:27

标签: jquery json getjson

我需要从站点获取一些JSON并解析它。问题是对象被命名为“-1”“-2”,依此类推。

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

Chrome返回时收到类似消息,“Uncaught TypeError:无法读取未定义的属性'长度'”

作为参考,这里有一个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”重命名为“1”,将“-2”重命名为“2”,则可以正常工作。例如。 JSON变为:

{
  "one": {
     "number": 47,
     "properties": [
       [

我的代码变成了

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

这很好用,但它增加了另一个复杂的步骤。

有没有办法解析原始的JSON(因为它是从服务器自动生成的,经常更改),或者我是不是试图弄清楚如何在本地保存它并在解析之前更改对象名称?

1 个答案:

答案 0 :(得分:7)

必须使用括号表示法将

data.-1引用为字符串。

data["-1"]