【问题标题】:JSON object Ignore nullJSON 对象忽略 null
【发布时间】:2020-11-20 08:37:06
【问题描述】:

我对 MuleSoft 和 DataWeave 有点陌生,我正在尝试使用来自另一个 JSON 对象的非空值创建一个 JSON 对象。

假设这是我的 JSON 数组:

{
    str1 : "String 1",
    str2 : "String 2",
    str3 : null,
    str4 : "String 4",
}

我想复制那个 JSON 数组但没有 str3,所以结果应该是这样的:

{
    str1 : "String 1",
    str2 : "String 2",
    str4 : "String 4",
}

任何人都可以帮助我解决这个问题吗?或者至少引导我找到解决方案?

问候

【问题讨论】:

  • 那不是 JSON 数组,是 JSON 对象。并且键缺少引号。

标签: dataweave mule4


【解决方案1】:

有两种可能的方法:

使用 skipNullOn 提到的 writer 属性 here

output application/json skipNullOn="everywhere"
---
payload

以编程方式使用 if 条件(用于逐个字段映射)

var b = null
---
{
    a: 1,
    (b: b) if b != null,
    c: 3
}

【讨论】:

    【解决方案2】:

    这是另一种方式:

    %dw 2.0
    output application/json
    var o = {
        str1 : "String 1",
        str2 : "String 2",
        str3 : null,
        str4 : "String 4",
    }
    ---
    o filterObject $ != null
    

    这是 filterObject documentation

    选择你喜欢的:)

    【讨论】:

      【解决方案3】:

      对于一个对象,你可以转换所有不为空的属性:

      %dw 2.0
      output application/json
      ---
      payload mapObject (($$): $ ) if (!($ == null))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-22
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 2015-01-13
        • 2019-03-21
        • 2019-10-14
        相关资源
        最近更新 更多