Jest to prawdopodobnie zduplikowane pytanie. Proszę zapoznać się z tym link.
Potrafię odwzorować jeden obiekt json na POJO. Ale jak mogę przekonwertować tablicę obiektu json na pojo przy użyciu tego samego frameworku jackson.Konwersja macierzy JSON na POJO za pomocą narzędzia odwzorowującego obiekt Jackson
private void jsonToPojo(){
ObjectMapper mapper=new ObjectMapper();
try {
User1 user1=mapper.readValue(readFromFile(), User1.class);
User1[] user2=mapper.readValue(readFromFile(), User1[].class);
System.out.println(user1);
Toast.makeText(getApplicationContext(), "inside try", 0).show();
} catch (JsonParseException e) {
// TODO Auto-generated catch block
Log.i("Exception", "jsonparseexception");
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
Log.i("Exception", "jsonmapping exception");
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
Log.i("Exception", "ioexception");
e.printStackTrace();
}
}
To jest obiekt klasy użytkownika.
public class User {
private int age = 23;
private String name = "amal";
private List<String> messages = new ArrayList<String>() {
{
add("hi");
add("how");
add("are u.");
}
};
//getter and setter methods
@Override
public String toString() {
return "User [age=" + age + ", name=" + name + ", " +
"messages=" + messages + "]";
}
To co próbowałem zrobić: (readFromFile() wykonuje json z pliku)
User1[] user2=mapper.readValue(readFromFile(), User1[].class);
jsonToPojo() działa dobrze tylko dla jednego obiektu. Jednakże, jeśli próbuję powyższy wiersz kodu, jego nie przyjmują następującą json:
[
{
"age":"23",
"messages":["hi","how","are u."],
"name":"amal"
},
{
"age":"98",
"messages":["Reply","my","question"],
"name":"You"
}
]
I przetestowałem twój przykład JSON i twój kod działa dla mnie. Czy klasy użytkownika i użytkownika 1 są takie same lub masz dwie różne klasy? –
user1 to nowa klasa. dobrze chcę przechowywać tablicę obiektu json w pojo .. to, czego nie jestem w stanie. – amalBit