使用Sesam我留下了一堆空属性。
如何继续跳过DTL中完全为null的属性? 执行此操作的任何DTL示例都会很棒。
实施例
自:
{
"address": "37484 Mohr Freeway\nNew Myrnaview, MI 89092",
"birth_date": "2001-02-18",
"column1": "01ba3bc2-8e22-4971-9683-b2ae05a39cd1",
"column2": "null",
"company": "Fay-Cole",
"credit_card": "4049553515365",
"first_name": "Dummy",
"home_page": "http://www.mante.com/faq/",
"job": "Airline pilot",
"last_name": "User",
}
要:
{
"address": "37484 Mohr Freeway\nNew Myrnaview, MI 89092",
"birth_date": "2001-02-18",
"column1": "01ba3bc2-8e22-4971-9683-b2ae05a39cd1",
"company": "Fay-Cole",
"credit_card": "4049553515365",
"first_name": "Dummy",
"home_page": "http://www.mante.com/faq/",
"job": "Airline pilot",
"last_name": "User",
}
答案 0 :(得分:1)
这可以通过使用“键值”,“合并”和“应用”功能的组合来解决,如下所示:
{
"_id": "remove-null-values",
"type": "pipe",
"source": {
"type": "embedded",
"entities": [{
"_id": "foo",
"bar": "baz",
"foo": null
}]
},
"transform": {
"type": "dtl",
"rules": {
"default": [
["merge",
["apply", "drop-nulls",
["key-values", "_S."]
]
]
],
"drop-nulls": [
["filter",
["is-not-null", "_S.value"]
],
["merge",
["dict", "_S.key", "_S.value"]
]
]
}
}
}
结果将是:
[
{
"_id": "foo",
"bar": "baz"
}
]
答案 1 :(得分:1)
以下是两种不同的解决方案:
备选方案1:
exit
备选方案2:
{
"_id": "test",
"type": "pipe",
"source": {
"type": "embedded",
"entities": [{
"_id": "test",
"a": 1,
"b": null,
"c": 2,
"d": null
}]
},
"transform": {
"type": "dtl",
"rules": {
"default": [
["copy", "*"],
["remove",
["filter",
["is-null",
["path", "_.", "_T."]
],
["keys", "_T."]
]
]
]
}
}
}
备选方案3:
{
"_id": "test",
"type": "pipe",
"source": {
"type": "embedded",
"entities": [{
"_id": "test",
"a": 1,
"b": null,
"c": 2,
"d": null
}]
},
"transform": {
"type": "dtl",
"rules": {
"default": [
["copy", "*"],
["remove",
["map",
["first", "_."],
["filter",
["is-null",
["last", "_."]
],
["items", "_T."]
]
]
]
]
}
}
}
结果:
{
"_id": "test",
"type": "pipe",
"source": {
"type": "embedded",
"entities": [{
"_id": "test",
"a": 1,
"b": null,
"c": 2,
"d": null
}]
},
"transform": {
"type": "dtl",
"rules": {
"default": [
["copy", "*"],
["remove",
["map",
["nth", 0, "_."],
["filter",
["is-null",
["nth", 1, "_."]
],
["items", "_T."]
]
]
]
]
}
}
}