从json对象数组中获取kay par值

时间:2013-10-12 13:07:28

标签: javascript jquery json

如果我像这样返回JSON文件,如何获得javascript对键值:

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

我尝试过很多解决方案,但是获取1个Object对象Object对象Object对象等等。

我的代码:

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

1 个答案:

答案 0 :(得分: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.parsejQuery.parseJSON)将其转换为后者,然后您可以直接在脚本中访问(JSON = JavaScript Object Notation)。 / p>

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

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' ?