Javascript 在NodeJS项目中使用Jsonata模块

Javascript 在NodeJS项目中使用Jsonata模块,javascript,Javascript,我试过健身器。看起来很酷 但是我必须在我的代码(NodeJS)中实现它 比方说 输入为: { “id”:“课程号1”, “说明”:“示例课程说明”, “内容类型”:“课程”, “类别”:“课程”, “持续时间秒”:500, “专家级”:[“中级”], “imageUrl”:https://percipio.com/courseuuid1/imagelink", “链接”:https://percipio.com/courseuuid1", “方式”:[“听”、“读”、“看”], “语言代码”:“

我试过健身器。看起来很酷

但是我必须在我的代码(NodeJS)中实现它

比方说

输入为:

{
“id”:“课程号1”,
“说明”:“示例课程说明”,
“内容类型”:“课程”,
“类别”:“课程”,
“持续时间秒”:500,
“专家级”:[“中级”],
“imageUrl”:https://percipio.com/courseuuid1/imagelink",
“链接”:https://percipio.com/courseuuid1",
“方式”:[“听”、“读”、“看”],
“语言代码”:“en”,
“父项”:空,
“发布日期”:“2018-11-19T10:23:34Z”,
“sourceName”:空,
“technologyTitle”:空,
“技术版本”:空,
“标题”:“Java”,
“收件人”:[“管理员”]
}
转换逻辑是:

{
“pkID”:id,
“描述”:描述,
“componentTypeID”:contentType,
“总长度”:持续时间秒,
“thumbnailURI”:图像URL,
“locale”:语言代码,
“createTimestamp”:publishDate,
“头衔”:头衔,
“lastUpdateUser”:由
}
我希望输出为转换逻辑格式,但通过NODEJS代码


请建议

我想这就是你想要的:

var inputJson={
  "id": "course_uuid1",
  "description": "Sample course description",
  "contentType": "COURSE",
  "category": "Course",
  "durationInSeconds": 500,
  "expertiseLevels": ["INTERMEDIATE"],
  "imageUrl": "https://percipio.com/courseuuid1/imagelink",
  "link": "https://percipio.com/courseuuid1",
  "modalities": ["LISTEN", "READ", "WATCH"],
  "languageCode": "en",
  "parent": null,
  "publishDate": "2018-11-19T10:23:34Z",
  "sourceName": null,
  "technologyTitle": null,
  "technologyVersion": null,
  "title": "Java",
  "by": ["admin"]
};

var outputJson={
  "pkID": inputJson.id,
  "description": inputJson.description,
  "componentTypeID": inputJson.contentType,
  "totalLength": inputJson.durationInSeconds,
  "thumbnailURI": inputJson.imageUrl,
  "locale": inputJson.languageCode,
  "createTimestamp": inputJson.publishDate,
  "title": inputJson.title,
  "lastUpdateUser": inputJson.by
}

安装jsonata节点模块并尝试以下代码:

var jsonata = require('jsonata');
    let input=
    {
      "id": "course_uuid1",
      "description": "Sample course description",
      "contentType": "COURSE",
      "category": "Course",
      "durationInSeconds": 500,
      "expertiseLevels": ["INTERMEDIATE"],
      "imageUrl": "https://percipio.com/courseuuid1/imagelink",
      "link": "https://percipio.com/courseuuid1",
      "modalities": ["LISTEN", "READ", "WATCH"],
      "languageCode": "en",
      "parent": null,
      "publishDate": "2018-11-19T10:23:34Z",
      "sourceName": null,
      "technologyTitle": null,
      "technologyVersion": null,
      "title": "Java",
      "by": ["admin"]
    }
    let exp="{'pkID': id,'description': description,'componentTypeID': contentType,'totalLength': durationInSeconds,'thumbnailURI': imageUrl,'locale': languageCode,'createTimestamp': publishDate,'title': title,'lastUpdateUser': by}";
    let expression = jsonata(exp);
    let expResult = expression.evaluate(input);
    console.log(expResult);

你的问题是什么?你试过什么?这似乎是简单的对象映射还有一件事,我想在unix时间戳中转换publishDate(输入)。如何通过这段代码实现相同的转换。@Nimmo您可以转换日期并在表达式中使用它。下面的链接可以帮助您将日期转换为UNIX时间戳