Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Javascript,elasticsearch" /> elasticsearch,Javascript,elasticsearch" />

Javascript 使用部分更新或更新查询更新json中的嵌套字段

Javascript 使用部分更新或更新查询更新json中的嵌套字段,javascript,elasticsearch,Javascript,elasticsearch,我使用的是elasticsearch,我想用特定键更新json中的特定字段,在我的例子中是macid,json如下所示 { macid:"mac1234", attri: { data:{ ch1:12, ch2:123 }, settings: { log

我使用的是elasticsearch,我想用特定键更新json中的特定字段,在我的例子中是macid,json如下所示

{
    macid:"mac1234",
    attri:
        {
            data:{

                ch1:12,
                ch2:123
            },
            settings:
                {
                    log_time:1min

                }


        }

}

我想用匹配的macid更新数据、设置字段,并且它们将是多条记录

如果JSON有错误,我觉得应该用引号括住字符串

解决问题的一个好办法是将JSON转换为对象,然后将对象转换回JSON文件

parse(JSON)将JSON转换为对象,同时

stringify将对象转换回JSON

下面是一个javascript修复程序:

var  jsonT = '{"macid":"mac1234","attri":{"data":{"ch1":12,"ch2":123},"settings":{"log_time":"1min"}}}'

var f = JSON.parse(jsonT);
f.attri.data.ch1 = "hi"

jsonT = JSON.stringify(f);
console.log(jsonT);

还有其他方法可以做到这一点,然后导出到.json文件

您能提供更清晰的信息吗?您是否有如上所述的JSON对象数组?是否要为所有用户提供相同的更新?如果您只有一个带有单个macid的JSON对象,那么您只需要使用
If
语句。感谢您的回答,但我想要的是,假设我知道macid,并且我想更新attri数组中的数据数组。我希望您能够it@savyaDhurve我已经更新了代码。您需要做的就是将f对象像普通对象一样对待。您还需要将其导出为.json文件吗?