-1

如果 JSON 文件如下所示,则很容易获取 JavaScript 键值对:

 [[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseerts     
 urname!"},{"field":"email","message":"Insert email"}]];

当前的解决方案返回我一个对象,如对象对象对象对象对象对象等等。

代码:

 var result = jQuery.parseJSON(data);
 var json_text = JSON.stringify(result, null, null);
4

1 回答 1

2

我认为您混淆了这些概念。包含 JSON 数据的 STRING 之间存在差异,例如:

var json = '[[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseertssurname!"},{"field":"email","message":"Insert email"}]]';

以及一个包含 JSON 数据的 OBJECT,例如:

var data = [[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseertsurname!"},{"field":"email","message":"Insert email"}]];

您必须解析前者(例如使用JSON.parseor jQuery.parseJSON),然后将其转换为后者,然后您可以直接在脚本中访问(JSON = JavaScript Object Notation)。

您的数据是对象的双重嵌套列表,可以这样访问:

console.log(data[0][1].field);
data[0].forEach(function (obj) { console.log(obj.field + ': ' + obj.message); });

(列表也是对象(typeof [] === 'object')但一种特殊情况,请参阅 Igor 已经建议的答案)。

如果您正在使用库检索数据,您通常会将数据作为准备访问的对象,如果有疑问,请尝试:

typeof data // 'string' or 'object' ?
于 2013-10-12T13:45:49.640 回答