对于一些 JSON:
{
"id":123,
"name":"Test",
"sub_object":{
"sub_field_1":1,
"sub_field_2":2,
"sub_field_array":[
{
"array_field_1":true,
"array_field_2":false
},
{
"array_field_1":false,
"array_field_2":true
}
],
"sub_sub_object":{
"field_1":"me",
"field_2":"myself",
"field_3":"i",
}
}
}
我想应用一个树状的字段名称列表。这可能用 JSONPath 表示:
root
|-id
|-sub_object
|-sub_field_2
|-sub_field_array
|-array_field_1
|-sub_sub_object
然后我应该得到类似的东西:
{
"id":123,
"sub_object":{
"sub_field_2":2,
"sub_field_array":[
{
"array_field_1":true
},
{
"array_field_1":false
}
],
"sub_sub_object":{
"field_1":"me",
"field_2":"myself",
"field_3":"i",
}
}
}
这个想法是,对于某些字段层次结构,我想限制输出的字段。
我正在通过一个已注释其对象字段的库来执行此操作,但我无法修改该库。我是否可以这样做并不重要,因为层次结构将基于每个序列化。目前,我将对象传递给 JsonGenerator 的 writeObject 方法,但这会返回所有内容。
一些子对象可能共享字段名,所以并不是创建一个 SimpleBeanPropertyFilter 来只序列化一组名称那么简单。
先感谢您,
约翰