Pour un peu de 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",
}
}
}
Je veux appliquer une liste arborescente de noms de champs. Cela pourrait probablement être exprimé en JSONPath :
root
|-id
|-sub_object
|-sub_field_2
|-sub_field_array
|-array_field_1
|-sub_sub_object
Ensuite, je devrais obtenir quelque chose comme :
{
"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",
}
}
}
L'idée est que, pour une hiérarchie de champs donnée, je veux limiter les champs qui sont renvoyés.
Je fais cela à travers une bibliothèque qui a annoté les champs de ses objets, mais je ne peux pas modifier la bibliothèque. Cela n'aurait pas vraiment d'importance car la hiérarchie sera sur une base de sérialisation par sérialisation. Actuellement, je passe les objets dans la méthode writeObject de JsonGenerator, mais cela renvoie tout.
Certains sous-objets peuvent partager des noms de champs, donc ce n'est pas aussi simple que de créer un SimpleBeanPropertyFilter pour sérialiser uniquement un ensemble de noms.
Merci d'avance,
John