JOLT如果条件嵌套

问题描述

我有这个输入json:

{“用户”:“ 123456”,“产品”:“电视机”,“类别”:“电子产品”, “ tag”:“夏天”}

这种转变:

public function up()
{
    Schema::create('category_post_pad',function (Blueprint $table) {
        $table->unsignedInteger('category_id');
        $table->unsignedInteger('post_id');
        $table->foreign('post_id')
            ->references('id')
            ->on('posts')
            ->onDelete('cascade');
        $table->unsignedInteger('pad_id');

    });
}

可以正常工作并产生以下json:

[
{
"operation": "shift","spec": {
"product": {
"@(1,product)": "item","@(1,user)": {
"#2": "userBias"
}
},"user": {
"@(1,user)": "user"
},"category": {
"#category": "rules.[0].name",category)": "rules.[0].values[0]"
},"tag": {
"rules": "rules","#tag": "rules.[1].name","@(2,tag)": "rules.[1].values[0]"
}
}
},{
"operation": "modify-overwrite-beta","spec": {
"userBias?": "=toInteger"
}
}
]

如果我从输入中删除了“ category”:“ electronics”,则它变为:

{“用户”:“ 123456”,“产品”:“电视”,“标签”:“夏季”}

然后我得到以下结果:

> { "item" : "televion","userBias" : 2,"user" : "123456","rules" : [
> { "name" : "category","values" : [ "electronics" ] },{ "name" :
> "tag","values" : [ "summer" ] } ] }

上述问题是它在数组中包含一个null元素,我不知道如何摆脱它。我已经尝试使用recursivelySquashNulls,但是它不起作用。 同样,基本上,我们要寻找的是如果类别和标签都存在,那么标签应该进入规则[1],如果只有标签存在,那么标签应该进入规则[0]。

预先感谢, 詹尼斯(Jiannis)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)