Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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 如何更新node.js中的json条目_Javascript_Json_Node.js - Fatal编程技术网

Javascript 如何更新node.js中的json条目

Javascript 如何更新node.js中的json条目,javascript,json,node.js,Javascript,Json,Node.js,如何使用node.js更新json值?我在互联网上找到了一些例子,但我的例子有点复杂 我可以打开我想要更改的值 var contents = fs.readFileSync("./../../skill.json"); var jsonContent = JSON.parse(contents); console.log("Address", jsonContent['manifest']['apis']['custom']['endpoint']['uri']); 但是如何用我的值编辑它呢?

如何使用node.js更新json值?我在互联网上找到了一些例子,但我的例子有点复杂

我可以打开我想要更改的值

var contents = fs.readFileSync("./../../skill.json");
var jsonContent = JSON.parse(contents);
console.log("Address", jsonContent['manifest']['apis']['custom']['endpoint']['uri']);
但是如何用我的值编辑它呢?

    var contents = fs.readFileSync("./../../skill.json");
    var jsonContent = JSON.parse(contents);
    console.log("Address", jsonContent['manifest']['apis']['custom']['endpoint']['uri']);
    // modify your value
    jsonContent['manifest']['apis']['custom']['endpoint']['uri'] = 'new value';
    // stringify it and write to file
    fs.writeFileSync("./../../skill.json", JSON.stringify(jsonContent));
    
  • JavaScript中的赋值是通过
  • 可以通过(
    []
    )访问对象的值
因此,修改内容与修改内容一样简单

jsonContent['manifest']['apis']['custom']['endpoint']['uri'] = 'value';
甚至:

jsonContent.manifest.apis.custom.endpoint.uri = 'value';

也就是说,我建议至少在
try catch
块中包装赋值,这样,如果对象与预期接收的结构不匹配,就不会发生崩溃

一个更强大、更通用的解决方案是利用。例如:

_.set(jsonContent, ['manifest', 'apis', 'custom', 'endpoint', 'uri'], 'value');

正如@Patrick Roberts所指出的,现代JavaScript将允许利用。这目前仅在中提供

  • JavaScript中的赋值是通过
  • 可以通过(
    []
    )访问对象的值
因此,修改内容与修改内容一样简单

jsonContent['manifest']['apis']['custom']['endpoint']['uri'] = 'value';
甚至:

jsonContent.manifest.apis.custom.endpoint.uri = 'value';

也就是说,我建议至少在
try catch
块中包装赋值,这样,如果对象与预期接收的结构不匹配,就不会发生崩溃

一个更强大、更通用的解决方案是利用。例如:

_.set(jsonContent, ['manifest', 'apis', 'custom', 'endpoint', 'uri'], 'value');

正如@Patrick Roberts所指出的,现代JavaScript将允许利用。这目前仅在中提供


可能重复的可能重复使用当前的第1阶段建议,您可以安全地更新嵌套属性,如
\.set()
does;使用可选的链接运算符:
jsonContent?.manifest?.api?.custom?.endpoint?.uri='value'
@PatrickRoberts这是当前阶段1提案的有效点,您可以安全地更新嵌套属性,如
\uU2.set()
使用可选的链接运算符:
jsonContent?.manifest?.API?.custom?.endpoint?.uri='value'@PatrickRoberts,这是一个有效点