我需要从一个网站获取一些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上进行解析(因为它是从服务器自动生成的,而且经常更改),或者我必须尝试弄清楚如何在解析之前本地保存并更改对象名称?