如果我像这样返回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);
答案 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.parse
或jQuery.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' ?