Javascript 从对象的JSON数组中获取键值对
如果JSON文件如下所示,则很难获得JavaScript键值对:Javascript 从对象的JSON数组中获取键值对,javascript,jquery,json,Javascript,Jquery,Json,如果JSON文件如下所示,则很难获得JavaScript键值对: [[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseerts urname!"},{"field":"email","message":"Insert email"}]]; 当前解决方案会返回一个对象,如对象等 代码: 我认为你混淆了这些概念。包含JSON数据的字符串之间存在差异,例如: var json = '
[[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseerts
urname!"},{"field":"email","message":"Insert email"}]];
当前解决方案会返回一个对象,如对象等
代码:
我认为你混淆了这些概念。包含JSON数据的字符串之间存在差异,例如:
var json = '[[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseertssurname!"},{"field":"email","message":"Insert email"}]]';
var data = [[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseertsurname!"},{"field":"email","message":"Insert email"}]];
以及包含JSON数据的对象,例如:
var json = '[[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseertssurname!"},{"field":"email","message":"Insert email"}]]';
var data = [[{"field":"name","message":"Insert name!"},{"field":"surname","message":"Inseertsurname!"},{"field":"email","message":"Insert email"}]];
您必须解析前者(例如使用JSON.parse
或jQuery.parseJSON
),然后将其转换为后者,您可以在脚本中直接访问后者(JSON=JavaScript对象表示法)
您的数据是一个双重嵌套的对象列表,可以这样访问:
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' ?
可能重复您提供的JSON有问题,是您编写的还是只是复制粘贴的,因为您在“插入电子邮件”后立即丢失了一个引用。我复制错误,我已经准备好修复问题!我的意思是我已经解决了这个问题,但我仍然没有任何解决问题的办法。