다음과 같은 방식으로 빌드 된 복잡한 개체에 대한 서버 응답을받습니다.
json array of object type A with
{ jsonobject with a json array of object type B
}
아래 예제와 같이 내 개체 typeA 및 개체 typeB로 역 직렬화하려고합니다.
public class ObjectA{
String a;
int b;
ArrayList<ObjectB> list;
}
public class ObjectB{
String a1;
int b2;
String c3;
}
이것은 내 JSON의 예입니다.
[
{
"a": "a",
"b": 1,
"list": [
{
"a1": "a1",
"b2": 2,
"c3": "c3"
},
{
"a1": "a1",
"b2": 2,
"c3": "c3"
}
]
},
{
"a": "a",
"b": 1,
"list": [
{
"a1": "a1",
"b2": 2,
"c3": "c3"
},
{
"a1": "a1",
"b2": 2,
"c3": "c3"
}
]
}
]
이것을 어떻게 deserialize합니까?
이미 클래스 계층 구조가 있으므로이를 활용하여 Gson이 모든 작업을 수행하도록 할 수 있습니다. 내가 의미하는 바를 더 잘 설명하기 위해 실행할 준비가 된 코드를 준비했습니다.
package stackoverflow.questions.q18123430;
import java.lang.reflect.Type;
import java.util.*;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class Q18123430 {
public static class ObjectA {
String a;
int b;
ArrayList<ObjectB> list;
@Override
public String toString() {
return "ObjectA [a=" + a + ", b=" + b + ", list=" + list + "]";
}
}
public static class ObjectB {
String a1;
int b2;
String c3;
@Override
public String toString() {
return "ObjectB [a1=" + a1 + ", b2=" + b2 + ", c3=" + c3 + "]";
}
}
public static void main(String[] args) {
String json = "[{ a:\"a\",b:1,list: [{a1:\"a1\",b2:2,c3:\"c3\"},{a1:\"a1\",b2:2,c3:\"c3\"}]}, { a:\"a\",b:1,list: [{a1:\"a1\",b2:2,c3:\"c3\"},{a1:\"a1\",b2:2,c3:\"c3\"}]}]";
Type listOfObjectA = new TypeToken<List<ObjectA>>() {
}.getType();
Gson g = new Gson();
ArrayList<ObjectA> result = g.fromJson(json, listOfObjectA);
System.out.println(result);
}
}
그리고 이것은 내 실행 결과입니다.
[ObjectA [a=a, b=1, list=[ObjectB [a1=a1, b2=2, c3=c3], ObjectB [a1=a1, b2=2, c3=c3]]], ObjectA [a=a, b=1, list=[ObjectB [a1=a1, b2=2, c3=c3], ObjectB [a1=a1, b2=2, c3=c3]]]]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다