Javascript 用JAVA-SCRIPT解析JSON文件

Javascript 用JAVA-SCRIPT解析JSON文件,javascript,node.js,json,home-automation,Javascript,Node.js,Json,Home Automation,我有一个json文件,看起来像这样。我需要编写一个JS代码来解析这个文件,读取文件中的特定元素,比如第一个元素的sensor_状态,然后写入特定元素,比如更改“sensor_id”的sensor_状态:“302CEM/lion/light1”为on。 这就是我尝试过的。我对如何着手这件事有一些想法。 尝试将其视为一个数组,sensor_state[0]表示第一个组,sensor_state[1]表示第二个组,依此类推。 另一种方法是在每个组/对象之前有一个名称,即light_1,以使代码显示se

我有一个json文件,看起来像这样。我需要编写一个JS代码来解析这个文件,读取文件中的特定元素,比如第一个元素的sensor_状态,然后写入特定元素,比如更改“sensor_id”的sensor_状态:“302CEM/lion/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
    返回的字符串,这样做会容易得多
  • 并在处理后写入文件。首先使用
    JSON.stringify
    将对象转换为字符串。然后调用以实际编写内容
您的代码将如下所示

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');
  });
});
笔记 我对如何着手这件事有一些想法。试图将其视为数组

它是一个数组,因此将其视为一个数组才有意义