Gson으로 JSON 역 직렬화

레나 브루

다음과 같은 방식으로 빌드 된 복잡한 개체에 대한 서버 응답을받습니다.

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합니까?

Giampaolo

이미 클래스 계층 구조가 있으므로이를 활용하여 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

gson 및 개조로 json 역 직렬화

분류에서Dev

RestSharp로 JSON 역 직렬화

분류에서Dev

json.net으로 JSON 역 직렬화

분류에서Dev

C #으로 json 역 직렬화

분류에서Dev

Newtonsoft.Json으로 역 직렬화

분류에서Dev

JSON 역 직렬화

분류에서Dev

GSON 역 직렬화

분류에서Dev

JSON은 List <T>로 역 직렬화

분류에서Dev

Collection + JSON 객체로 역 직렬화

분류에서Dev

동적 개체로 JSON 역 직렬화

분류에서Dev

JSON을 C # 개체로 역 직렬화

분류에서Dev

newtonsoft로 json 배열 역 직렬화

분류에서Dev

JSON을 .net 객체로 역 직렬화

분류에서Dev

"무작위"키로 JSON 역 직렬화

분류에서Dev

.NET DataContractJsonSerializer serializer를 사용하여 사전으로 JSON 직렬화 / 역 직렬화

분류에서Dev

.NET DataContractJsonSerializer serializer를 사용하여 사전으로 JSON 직렬화 / 역 직렬화

분류에서Dev

C #에서 JSON으로 직렬화하고 TS에서 역 직렬화

분류에서Dev

System.Text.Json : 자동 캐스팅으로 JSON 역 직렬화

분류에서Dev

JSON.NET으로 이상한 구조의 JSON 역 직렬화

분류에서Dev

JSON.NET으로 JSON 데이터 역 직렬화

분류에서Dev

JSON.NET으로 중첩 된 JSON 응답 역 직렬화

분류에서Dev

Rust로 가능한 여러 값으로 JSON 역 직렬화

분류에서Dev

GSON에서 객체의 JSON 컬렉션 (잠재적으로 다른 컬렉션과 함께) 역 직렬화

분류에서Dev

json 문자열을 .NET 개체 목록으로 역 직렬화

분류에서Dev

JSON을 Dictionary <string, List <string >>으로 역 직렬화

분류에서Dev

다단계 중첩으로 JSON 역 직렬화

분류에서Dev

JSON 파일을 개체 C #으로 역 직렬화

분류에서Dev

대괄호 VB.NET으로 JSON 역 직렬화

분류에서Dev

하위 클래스의 "새"속성으로 Json 역 직렬화

Related 관련 기사

뜨겁다태그

보관