2015-06-19 3 views
0

в настоящее время сталкивается с проблемой, как сериализовать список объектов в формате json для pojo. в моих работах, используя сервис службы джерси, он может потреблять json. как можно дезацинировать запрос на отдых с помощью json-объекта, имеющего массив объектов.deserialize arrayList объектов в jakson

массив JSON

{ 
    "subject": "hi", 
    "description": [ 
     { 
      "subject": "hi" 
     }, 
     { 
      "subject": "hi" 
     } 
    ] 
} 

мой POJO класс

public class t { 

    private String subject; 
    private List<t2> description; 

    public String getSubject() { 
     return subject; 
    } 

    public void setSubject(String subject) { 
     this.subject = subject; 
    } 

    public List<t2> getDescription() { 
     return description; 
    } 

    public void setDescription(List<t2> description) { 
     this.description = description; 
    } 

} 

t2.class

public class t2 { 
    private String subject; 

    public String getSubject() { 
     return subject; 
    } 

    public void setSubject(String subject) { 
     this.subject = subject; 
    } 
} 
+0

Так вы просто хотите преобразовать json-строку в объект java? – Amir

+0

Думаю, вы можете найти решение в этом же вопросе: http://stackoverflow.com/questions/11106379/how-to-deserialize-json-array – Amir

+0

В чем проблема? Этот тип и JSON кажутся совместимыми, поэтому вы просто объявляете, что метод ресурса принимает один параметр типа 't' и все. – StaxMan

ответ

-1

Использование TypeReference. Например:

import java.io.IOException; 

import com.fasterxml.jackson.core.JsonParseException; 
import com.fasterxml.jackson.core.type.TypeReference; 
import com.fasterxml.jackson.databind.JsonMappingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 


public class JacksonParser { 

    public static void main(String[] args) { 
     t data = null; 
     String json = "{\"subject\":\"hi\",\"description\":[{\"subject\":\"hi\"},{\"subject\":\"hi\"}]}"; 
     ObjectMapper mapper = new ObjectMapper(); 
     try { 
      data = mapper.readValue(json, new TypeReference<t>() { }); 
     } catch (JsonParseException e) { 
      System.out.println(e.getMessage()); 
     } catch (JsonMappingException e) { 
      System.out.println(e.getMessage()); 
     } catch (IOException e) { 
      System.out.println(e.getMessage()); 
     } 
     System.out.println(data); 
    } 

} 
+1

Вам не нужно использовать 'TypeReference' там, потому что' t' не является общим. Вместо этого вы можете использовать 't.class. – jgm

Смежные вопросы