2011-08-12 21 views
6

puedo saber si el archivo tiene User.jsonJackson - JSON para POJO con entradas múltiples

{ 
    "name" : { "first" : "Joe", "last" : "Sixpack" }, 
    "gender" : "MALE", 
    "verified" : false, 
    "userImage" : "Rm9vYmFyIQ==" 
} 

Puedo construir un objeto único usuario de esta manera:

User user = mapper.readValue(new File("user.json"), User.class); 

Pero ¿cómo construir una lista de objetos si el archivo User.json tiene:

{ 
    "name" : { "first" : "Joe", "last" : "Sixpack" }, 
    "gender" : "MALE", 
    "verified" : false, 
    "userImage" : "Rm9vYmFyIQ==" 
}, 
{ 
    "name" : { "first" : "Jane", "last" : "Austen" }, 
    "gender" : "FEMALE", 
    "verified" : false, 
    "userImage" : "DFREWEWE==" 
} 

?

Respuesta

11

múltiples maneras: si tiene una matriz JSON de estos, que puede hacer:

User[] users = mapper.readValue(json, User[].class); 

o, si es sólo una secuencia de valores de nivel raíz que puede hacer:

Iterator<User> it = mapper.readValues(json, User.class); 

e iterar sobre los valores (agregar a una lista o similar)

+0

¿Qué es json en el código anterior? Dale el tipo por favor para que pueda usarlo también. –

+0

del código en la pregunta, está claro que 'json' es un objeto de archivo, que contiene el texto JSON –

+0

Correcto - No especifique el tipo ya que puede provenir de varias fuentes (o incluso ser JSON 'byte []' o 'String'). @ImtiazAhmad echa un vistazo a Jackson javadocs para ver los tipos posibles para obtener más información. – StaxMan

Cuestiones relacionadas