Javascript 访问json数组的第一个元素
这是我的JSON对象Javascript 访问json数组的第一个元素,javascript,node.js,Javascript,Node.js,这是我的JSON对象 { "errors": { "product_name": { "message": "Product name is required", "name": "ValidatorError" }, "category": { "message": "Category is required", "name": "Valida
{
"errors": {
"product_name": {
"message": "Product name is required",
"name": "ValidatorError"
},
"category": {
"message": "Category is required",
"name": "ValidatorError"
}
}
}
我的目标是访问第一条“消息”,尽管它可以通过
errors.product_name.message
这不是目标,我的目标是在不使用“product_name”对象的情况下获取第一条消息,如
errors[0].message
用于迭代错误并获取消息属性
const obj={
“错误”:{
“产品名称”:{
“消息”:“需要产品名称”,
“名称”:“验证程序错误”
},
“类别”:{
“消息”:“类别是必需的”,
“名称”:“验证程序错误”
}
}
};
常量[,值]=对象项(对象错误)[0];
console.log(value.message)代码>首先您需要知道,对象
不是集合
。顺序并不总是相同的(取决于迭代器实现)
它通常会给出声明键的顺序,但不需要为true
然后,一些方法可以得到你想要的
使用对象键
:
const keys = Object.keys(obj.errors);
const firstError = obj.errors[keys[0]];
使用对象。条目
:
const entries = Object.entries(obj.errors);
const firstError = entries[0][1];
然后,如果您不需要所有钥匙,您可以在第一个钥匙处停止:
function getFirstKey(obj) {
for (const k in obj) {
return k;
}
}
const firstError = obj.errors[getFirstKey(obj.errors)];
您所展示的内容中没有数组值得注意的是,即使使用Object,entries()第一个属性键也不一定总是相同的。整个事情看起来像是个XY问题