Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问json数组的第一个元素_Javascript_Node.js - Fatal编程技术网

Javascript 访问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

这是我的JSON对象

{
    "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问题