从JSON对象中删除字段

时间:2019-04-29 04:46:46

标签: node-red

嗨,有人可以帮忙从嵌套json数组中删除元素

{
"_id": "ProductionData1",
"_rev": "1-b4a160f5e13fab074d2fcc359e820d3f",
"topic": "",
"payload": {
"plant Operating Time": "600",
"plant stop": "10"
}
}

假设我要删除对象“ _id”:“ ProductionData1”“ _ rev”:“ 1-b4a160f5e13fab074d2fcc359e820d3f”“ topic”:“”,这应该让我留下以下内容:

{
"payload": {
"plant Operating Time": "600",
 "plant stop": "10"
}
}

3 个答案:

答案 0 :(得分:0)

change节点将允许您从msg对象中删除键值对。

enter image description here

在信息侧栏中:

  

设置,更改,删除或移动消息,流上下文或消息的属性   全球背景。

     

节点可以指定将依次应用的多个规则。

     

可用的操作是:

     
      
  • 设置-设置属性。该值可以是各种不同的类型,也可以从现有的消息或上下文属性中获取。
  •   
  • 更改-搜索和替换属性的一部分。如果启用了正则表达式,则replace with属性可以包含捕获   组,例如$ 1。如果存在,替换将仅更改类型   完全匹配。
  •   
  • 删除-删除属性。
  •   
  • 移动-移动或重命名属性。
  •   

答案 1 :(得分:0)

尝试通过此功能运行JSON:

const jsonToTrim = {
   "_id": "ProductionData1",
   "_rev": "1-b4a160f5e13fab074d2fcc359e820d3f",
   "topic": "",
   "payload": {
      "plant Operating Time": "600",
      "plant stop": "0"
   }
};

function trimJSON(json, propsToRemove) {
    propsToRemove.forEach((propName) => {
      delete json[propName];
    });
}
// call the function 
trimJSON(jsonToTrim, ['_id', '_rev', 'topic']);
//inspect result
console.log(jsonToTrim);

这是实际上从对象中删除属性的部分:     delete json[propName]; 您可以阅读有关删除here的更多信息。

json[propName]而言,这是编写json.propName的另一种方法,它使我们能够使道具名称动态地(从数组中)传入。

答案 2 :(得分:-1)

如果您使用的是Angular或Node

在Node或Angular中处理响应,并仅尝试使用对象中的特定变量,而不要尝试这样做。

let json ={
"_id": "ProductionData1",
"_rev": "1-b4a160f5e13fab074d2fcc359e820d3f",
"topic": "",
"payload": {
"plant Operating Time": "600",
"plant stop": "0"
}

删除元素的语法是角是

    delete this.json['_rev']
    delete this.json['_id']
    delete this.json['topic']

删除此元素后的结果将得到

{
"payload": {
"plant Operating Time": "600",
 "plant stop": "10"
}

示例DEMO