Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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/4/powerbi/2.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文件中的json密钥?_Javascript_Node.js_Json_Typescript - Fatal编程技术网

使用Javascript更新json文件中的json密钥?

使用Javascript更新json文件中的json密钥?,javascript,node.js,json,typescript,Javascript,Node.js,Json,Typescript,我有一个JSON文件,我需要读取该JSON文件并用新值更新一个特定的键。如何在typescript文件中使用javascript来实现这一点 datafile.json: { "Id": { "place": { "operations": [{ "Name": "John", "Address": "USA" }] } } } 现在在我的test.t

我有一个JSON文件,我需要读取该JSON文件并用新值更新一个特定的键。如何在typescript文件中使用javascript来实现这一点

datafile.json:

{
   "Id": {
       "place": {
           "operations": [{
               "Name": "John",
               "Address": "USA"
           }]
       }
   }
}
现在在我的test.ts文件中

constfilepath='c:/datafile.json';
var testjson=filepath.Id[place][operations][0];
var mykey='地址';
//testjson[mykey]=“UK”;
updateJsonFile(文件路径,(数据)=>{
数据[mykey]=“英国”;
控制台日志(数据);
返回数据;
});
问题在于,它使用新的键和值更新JSON,如下所示:

{
    "Id": {
        "place": {
            "operations": [{
                "Name": "John",
                "Address": "USA"
            }]
        }
        "Address": "UK"
    }
}

但我只想更改一个特定键的值,然后添加新键。在JS中可能吗?

数据
没有
地址
属性,它的
操作
,位于
位置

如果你试着把它设置成

data[mykey]=“英国”;
它将为
数据
创建一个新属性

应该是

o.Id.place.operations[0][mykey]=“UK”;
jsonString=`
{
“Id”:{
“地点”:{
“业务”:[{
“姓名”:“约翰”,
“地址”:“美国”
}]
}
}
}
`;
让o=JSON.parse(jsonString);
var mykey='地址';
o、 Id.place.operations[0][mykey]=“英国”;

主控台主任(o);
您确定这是您的代码生成的实际JSON吗?。该JSON无效,它缺少一个“,”before'”Address:“UK””值,如果它是由代码生成的,则不会发生这种情况。您不能获取文件的路径(这是一个字符串),并神奇地从中获取数据。您必须使用
require(filepath)
或加载文件并使用
JSON.parse()
加载它。这是否回答了您的问题?您的代码中还有其他问题,但这些问题并不重要,直到您获得数据并将其解析到内存中。嗨,我问过如何编辑JSON文件而不是console.log。我只是想知道如何更新json文件。顺便说一句,console.dir做什么?StackOverFlow在浏览器中运行,不可能执行文件操作,在演示中,实际答案是,使用“o.Id.place.operations[0][mykey]='UK';”而不是“data[mykey]='UK';”。提供了用于访问JSON works的代码。你可以用谷歌搜索console.dir的功能。