使用 JAVA-SCRIPT 解析 JSON 文件
Parsing through JSON file with JAVA-SCRIPT
我有一个看起来像这样的 json 文件。我需要编写一个 JS 代码来解析该文件并读取文件的特定元素,例如第一个元素的 sensor_state 并写入特定元素,例如更改 "sensor_id" 的 sensor_state : "302CEM/lion/light1" 打开。
这就是我尝试过的。我对如何去做有一些想法。
尝试将其视为数组,sensor_state[0] 表示第一组,sensor_state[1] 表示第二组,依此类推。
另一种方法是在每个 group/object 之前有一个名字,即 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
的 字符串 要容易得多] returns.
- 并在处理后写入您的文件。您首先使用
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');
});
});
备注
I had a few thoughts on how to to go about it. trying to treat it like an array
它是一个数组,所以只有把它当作一个数组才有意义。
我有一个看起来像这样的 json 文件。我需要编写一个 JS 代码来解析该文件并读取文件的特定元素,例如第一个元素的 sensor_state 并写入特定元素,例如更改 "sensor_id" 的 sensor_state : "302CEM/lion/light1" 打开。 这就是我尝试过的。我对如何去做有一些想法。 尝试将其视为数组,sensor_state[0] 表示第一组,sensor_state[1] 表示第二组,依此类推。 另一种方法是在每个 group/object 之前有一个名字,即 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
的 字符串 要容易得多] returns. - 并在处理后写入您的文件。您首先使用
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');
});
});
备注
I had a few thoughts on how to to go about it. trying to treat it like an array
它是一个数组,所以只有把它当作一个数组才有意义。