[英]Jolt Transform JSON Spec
我需要在输入 JSON 下转换为输出 JSON,但不确定如何为此编写规范。 需要重新定位一个字段(“homePage”)作为根元素。 任何帮助或建议将不胜感激。
输入 JSON :
[{
"uuid": "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
"pageId": 123456,
"page": {
"indexable": true,
"rootLevel": false,
"homePage": false
}
}]
输出 JSON :
[{
"uuid": "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
"pageId": 123456,
"homePage": false,
"page": {
"indexable": true,
"rootLevel": false
}
}]
这个 Jolt Spec 应该适合你。 使用https://jolt-demo.appspot.com/ 进行测试
[
{
"operation": "shift",
"spec": {
"*": {
"uuid": "[&1].uuid",
"pageId": "[&1].pageId",
"page": {
"indexable": "[&2].page.indexable",
"rootLevel": "[&2].page.rootLevel",
"homePage": "[&2].homePage"
}
}
}
}
]
输入:
{
"uuid" : "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
"pageId" : 123456,
"page" : {
"indexable" : true,
"rootLevel" : false
},
"homePage" : false
}
输出:
[ {
"uuid" : "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
"pageId" : 123456,
"page" : {
"indexable" : true,
"rootLevel" : false
},
"homePage" : false
} ]
解释:
来自javadoc
&
路径查找当 Shiftr 处理数据并沿着规范走时,它会维护一个数据结构,描述它所走的路径。
&
通配符可以从该路径以 0 主要、向上的方式访问数据。 例子:{ "foo" : { "bar": { "baz": // &0 = baz, &1 = bar, &2 = foo } } }
下一件事:如何将输出对象包装到数组中? 在这篇文章中可以找到一个很好的例子。
所以,在我们的例子中:
"[&1].uuid"
说:将
uuid
值放在数组内的对象中。 数组的索引由&1
通配符指示。 对于uuid
它将是数组的索引,其中带有uuid
键的对象放置在原始 json 中。
[&2]
类似于[&1]
。 但是,查看"indexable"
键,它在输入 json 中更深一层。 这就是为什么我们使用[&2]
而不是[&1]
(再次查看文档中的 foo-bar 示例)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.