带有名为“-1”的对象的 JSON

Posted

技术标签:

【中文标题】带有名为“-1”的对象的 JSON【英文标题】:JSON with objects named "-1" 【发布时间】:2013-01-08 16:50:06 【问题描述】:

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

当我尝试解析它时,Firebug 回来了,“TypeError: obj is undefined 长度 = obj.length"

Chrome 会返回类似的消息,“未捕获的类型错误:无法读取未定义的属性 '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】:

data.-1 必须使用括号表示法作为字符串引用。

data["-1"]

【讨论】:

以上是关于带有名为“-1”的对象的 JSON的主要内容,如果未能解决你的问题,请参考以下文章

带有响应方法调用的键的 Rails json

C# 使用对象列表中的对象反序列化 JSON - 但无法访问它

Spring surf javascript 支持的 webscript 和 JSON 对象

JSONObject.toBean怎么转化带有Timestamp类型的对象

如何在构建时在 C++ 中包含 JSON 文件/对象

Python使用json加载解析带有两个json对象列表的文件