使用 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

它是一个数组,所以只有把它当作一个数组才有意义。