在Node.JS中使用JSONata处理JSON文件返回undefined

3yhwsihp  于 2022-12-18  发布在  Node.js
关注(0)|答案(1)|浏览(199)

在Node.JS中使用JSONata处理JSON文件返回undefined。为什么会发生这种情况?
我试过了,但它返回“未定义”

索引.js

const jsonata = require("jsonata");
    const fs = require("fs");

    (async () => {
        const json = fs.readFileSync("test.json", {encoding:'utf8', flag:'r'});
        const expression = jsonata('V1.fields');
        const result = await expression.evaluate(json);
        console.log(result);
    })()

测试.json

[
  12345,
  {
    "V1": {
      "fields": {
          "id": 0
      }
    }
  }
]

输出

% node index.js  
undefined


https://try.jsonata.org/N02gm7EYz

3qpi33ja

3qpi33ja1#

尽管名字叫jsonata,但它并不计算JSON,而是计算对象。在将读取的JSON传递给jsonata之前,需要解析它。
您可以显式地执行此操作:

const json = JSON.parse(fs.readFileSync("test.json", {encoding:'utf8', flag:'r'}));

但老实说,更简单的方法是require它,让Node.js做“繁重”的工作:

const json = require("./test.json");

相关问题