我有一个看起来像这样的JSON文件。我需要编写一个JS代码,该代码将通过此文件解析并读取文件的特定元素,例如第一个元素的传感器_State,然后写入特定元素,例如更改" sensor_id"的传感器_STATE:" sensor_id":" 302cem/lionl/light1"到ON。这就是我尝试的。我有一些想法对此进行了一些想法。试图像对待数组一样对待它,Sensor_state [0]将意味着第一组Sensor_state [1]意味着第二组,依此类推。另一种方法是在每个组/对象之前拥有一个名称,即light_1,以具有sensor_data [light1] [sensor_state] =" off"的代码,但我无法构造json文件要执行。任何建议
{
"sensor_data": [
{
"sensor_id": "302CEM/lion/light1",
"sensor_state": "off"
},
{
"sensor_id": "302CEM/lion/light2",
"sensor_state": "off"
}
]
}
const fs =
require('fs');
var data = []
//To Read from the JSON File, dont know if this still needed
fs.readFile('datajson.json', (err,data) => {
if (err) throw err;
var sensor = JSON.parse(data);
var stringy = JSON.stringify(data)
console.log(stringy.sensor_state[0]);
}
)
- 为了处理您的JSON,在
JSON.parse
之后进行此操作要容易得多,而不是使用JSON.stringify
返回的 String 。 - 并在处理后编写您的文件。您首先使用
JSON.stringify
将对象转换为字符串。然后致电fs.writefile实际编写内容
您的代码看起来像这样
const fs = require('fs');
const fileName = './data.json';
fs.readFile(fileName, (errRead, content) => {
if (ererrReadr) throw errRead;
let data = JSON.parse(content);
// Change the "sensor_id" of the first item in "sensor_data"
data.sensor_data[0].sensor_id = 'this is a new ID';
// Write back new JSON
fs.writeFile(fileName, JSON.stringify(data), errWrite => {
if (errWrite) throw errWrite;
console.log('New data has been saved');
});
});
注意
我对如何进行操作有一些想法。试图像对待数组
对待它
它是一个数组,所以只能像对待一个一样有意义。