从json中删除多个路径
我试图从json转换器中删除多路径 因此,如果这是我的目标-这是有效的:从json中删除多个路径,json,playframework,playframework-2.0,Json,Playframework,Playframework 2.0,我试图从json转换器中删除多路径 因此,如果这是我的目标-这是有效的: { "a": { "field1": null, "field2": 123 } "b": { "b1": { "field1": null }, "b2": { "field1": null } } } 因此,如果这是我的目标-这失败了: { "a": { "field1"
{
"a": {
"field1": null,
"field2": 123
}
"b": {
"b1": {
"field1": null
},
"b2": {
"field1": null
}
}
}
因此,如果这是我的目标-这失败了:
{
"a": {
"field1": null,
"field2": 123
}
"b": {
"b1": null,
"b2": {
"field1": null
}
}
}
我正在尝试删除“field2”旁边的所有字段。
所以我写了这个:
((__ \ "a" \ "field1").json.prune andThen
(__ \ "b" \ "b1" \ "field1").json.prune andThen
(__ \ "b" \ "b2" \ "field1").json.prune)
我得到以下错误:
(/a/field1/b/b1/field1/b/b2/field1/b2/field1,List(ValidationError(List(error.expected.jsobject),WrappedArray())))
我还尝试:
((__ \ "a" \ "field1").json.prune and
(__ \ "b" \ "b1" \ "field1").json.prune and
(__ \ "b" \ "b2" \ "field1").json.prune) reduce
我得到以下两个错误:
(/b/b1/field1/b1/field1,List(ValidationError(List(error.expected.jsobject),WrappedArray())))
(/b/b2/field1/b2/field2,List(ValidationError(List(error.expected.jsobject),WrappedArray())))
我遗漏了什么?对于您的示例Json对象,第一个transformer运行良好:
JsSuccess({“a”:{“field2”:123},“b”:{“b1”:{},“b2”:{}}}},/a/field1/b/b1/field1/b/b2/field1)
,第二个对于这一点无效。谢谢。。我更新了我的示例-问题是b1或b2的值为空@您的问题是删除空对象的字段(b.b1.field1,但b.b1为空)。请参见如何检查null或省略的属性。您希望删除此属性的任务是什么?对于您的示例Json对象,第一个transformer工作正常:JsSuccess({“a”:{“field2”:123},“b”:{“b1”:{},“b2”:{}}},/a/field1/b/field1/b/b2/field1)
,第二个transformer对此无效。谢谢。。我更新了我的示例-问题是b1或b2的值为空@您的问题是删除空对象的字段(b.b1.field1,但b.b1为空)。请参见如何检查null或省略的属性。要删除此属性的任务是什么?