Pour certains JSON:champs de filtrage et des sous-champs Jackson
{
"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 des noms de champs. Cela pourrait probablement être exprimée en JSONPath:
root
|-id
|-sub_object
|-sub_field_2
|-sub_field_array
|-array_field_1
|-sub_sub_object
alors je devrais retourner 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 sur le terrain, je veux limiter les champs qui sont émis. Je le fais à travers une bibliothèque qui a annoté les champs de ses objets, mais je ne peux pas modifier la bibliothèque. Ce ne serait pas vraiment important si je pouvais parce que la hiérarchie sera sur une base par sérialisation. Actuellement, je passe les objets dans la méthode writeObject de JsonGenerator, mais cela retourne tout.
Certains sous-objets peuvent partager des noms de champs, il n'est donc pas aussi simple que de créer un SimpleBeanPropertyFilter pour ne sérialiser qu'un ensemble de noms.
Nous vous remercions à l'avance,
John
Eh oui! Cela l'a fait pour moi. Merci –