像json一样访问json对象中的元素

hol*_*ard 13 javascript arrays json properties object

可能重复:
我有一个嵌套的数据结构/ JSON,我如何访问特定的值?

我有一个json对象,如下所示:

[
  ["Blankaholm", "Gamleby"],
  ["2012-10-23", "2012-10-22"],
  ["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
  ["57.586174","16.521841"], ["57.893162","16.406090"]
]
Run Code Online (Sandbox Code Playgroud)

它由4个"属性级别"(城市,日期,描述和坐标)组成.

我想要做的是能够像这样的数组访问这些级别:

var coordinates = jsonObject[4];
Run Code Online (Sandbox Code Playgroud)

这显然不起作用所以我的问题是我该怎么做?

我需要解码它或者其他什么东西,如果是这样的话?

hol*_*ard 23

通过使用JSON.parse,我找到了解决这个问题的直接方法.

我们假设下面的json在变量jsontext中.

[
  ["Blankaholm", "Gamleby"],
  ["2012-10-23", "2012-10-22"],
  ["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
  ["57.586174","16.521841"], ["57.893162","16.406090"]
]
Run Code Online (Sandbox Code Playgroud)

解决方案是这样的:

var parsedData = JSON.parse(jsontext);
Run Code Online (Sandbox Code Playgroud)

现在我可以通过以下方式访问元素:

var cities = parsedData[0];
Run Code Online (Sandbox Code Playgroud)

  • +1啊,这个网站上的一个人了解JSON是什么! (6认同)
  • ......哦,事实证明是OP!:d (5认同)
  • @JeffreySweeney:OP收到JSON数据作为对AJAX请求的响应,或者来自cookie或类似的东西,需要解析它.原始数据作为Unicode文本到达,它被解析,它在程序中使用.这是JSON的观点.如果它是`var`语句的一部分(并且不存储为字符串),那么它不是JSON.如果*被*作为字符串存储在`var`中,那么那就太奇怪了. (3认同)