Gson을 사용하여 중첩 배열로 JSON 구문 분석

Nilkash

저는 Gson 구문 분석을 처음 사용했으며 기본적인 Gson 구문 분석을 거의 수행하지 않았습니다. 그러나 이번에는 JSON이 훨씬 복잡합니다. 내 JSON은 다음과 같습니다.

{"uname":"man101",
"uid":"2",
    "account":{
            "entry":[8,15.48],
            "exit":[8,15.48],
            "details":
                [[0,0],[0,8.2],[1.15,8.2],[1.15,18.23],[7.33,18.23],[7.33,15.48],[12.15,2.28],
                [12.35,2.28],[12.35,0],[10.65,0],[10.65,1.42],[8.1,1.42],[8.1,3.95],
                [4.25,3.95],[4.25,0]],

            "section":
                [
                   {
                        "account":[[0,0],[0,3.35],
                            [4.25,3.35],[4.25,0]],
                            "category":"office",
                           "description":"Mobile based company",
                           "sectionname":"xyz",
                           "id":1
                  },

                  {
                        "account":[[0,3.95],[0,7.8],
                              [4.25,7.8],4.25,3.95]],
                        "category":"office",
                        "description":"Network based company",
                        "sectionname":"ABC",
                        "id":2
                  },
                ]
            },
    "category":"Cowork",
    "description":"Combined office space"
}

그리고 나는 이것을 다음과 같은 방식으로 파싱하려고했습니다.

public class AccountData
{
    public String uname;
    public String uid;
    public String category;
    public String description;
    public Account account;

    public class Account
    {
        public float[] entry;
        public float[] exit;
        public List<float[]> details;
        public List<Section> section;
    }

    public class Section
    {
        public List<float[]> account;
        public String category;
        public String description;
        public String sectionname;
        public String id;
    }

}

그리고 이렇게 결과를 전달하려고

 Gson gson = new Gson();
 beaconList = gson.fromJson(result, AccountData.class);

오류없이 실행되지만 일부 데이터에 액세스하려고하면 null 값이 제공됩니다.

Giampaolo

우선 , JSON이 잘못되었습니다. 여기에 수정 된 버전이 있습니다 (예를 들어 코드의 9 행에 추가 쉼표가 있음).

{
  "uname": "man101", 
  "uid": "2", 
  "account": {
    "entry": [
      8, 
      15.48
    ], 
    "exit": [
      8, 
      15.48
    ], 
    "details": [
      [
        0, 
        0
      ], 
      [
        0, 
        8.2
      ], 
      [
        1.15, 
        8.2
      ], 
      [
        1.15, 
        18.23
      ], 
      [
        7.33, 
        18.23
      ], 
      [
        7.33, 
        15.48
      ], 
      [
        12.15, 
        2.28
      ], 
      [
        12.35, 
        2.28
      ], 
      [
        12.35, 
        0
      ], 
      [
        10.65, 
        0
      ], 
      [
        10.65, 
        1.42
      ], 
      [
        8.1, 
        1.42
      ], 
      [
        8.1, 
        3.95
      ], 
      [
        4.25, 
        3.95
      ], 
      [
        4.25, 
        0
      ]
    ], 
    "section": [
      {
        "account": [
          [
            0, 
            0
          ], 
          [
            0, 
            3.35
          ], 
          [
            4.25, 
            3.35
          ], 
          [
            4.25, 
            0
          ]
        ], 
        "category": "office", 
        "description": "Mobile based company", 
        "sectionname": "xyz", 
        "id": 1
      }, 
      {
        "account": [
          [
            0, 
            3.95
          ], 
          [
            0, 
            7.8
          ], 
          [
            4.25, 
            7.8
          ], 
          [
            4.25, 
            3.95
          ]
        ], 
        "category": "office", 
        "description": "Network based company", 
        "sectionname": "ABC", 
        "id": 2
      }
    ]
  }, 
  "category": "Cowork", 
  "description": "Combined office space"
}

http://json.parser.online.fr/ 또는 http://www.bodurov.com/JsonFormatter/에서 json을 확인할 수 있습니다 .

둘째 , Gson은 정적으로 선언되지 않는 한 내부 클래스를 그다지 좋아하지 않습니다.

그리고 세 번째 다음과 같이 나는 당신의 클래스를 재정의 있도록 피하기 수업에 배열과 제네릭을 혼합, 제네릭은 사용에 안전하다 :

public class AccountData {
   public String uname;
   public String uid;
   public String category;
   public String description;
   public Account account;



   public static class Account {
      public List<Double> entry;
      public List<Double> exit;
      public List<List<Double>> details;
      public List<Section> section;
   }

   public static class Section {
      public List<List<Double>> account;
      public String category;
      public String description;
      public String sectionname;
      public String id;
   }

}

당신이 내부 정적 클래스 마음에 들지 않으면 당신은 항상 넣을 수 있습니다 SectionAccount별도의 파일로 (물론, static 키워드없이).

편집하다

Brian Roach가 의견에서 지적했듯이 Gson과 잘 작동하기 위해 내부 클래스가 더 이상 정적 일 필요가 없습니다. 따라서 포인트 2는 더 이상 사실이 아닙니다. 클래스 선언에서 정적을 제거 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

VBA 및 JSON을 사용하여 중첩 배열 구문 분석

분류에서Dev

GSON을 사용하여 DistanceMatrix Google Api에서 중첩 배열 Json을 Java로 구문 분석

분류에서Dev

GSON으로 여러 중첩 JSON 객체 / 배열을 구문 분석하는 방법은 무엇입니까?

분류에서Dev

GSON을 사용하여 중첩 된 JSON을 구문 분석하는 방법

분류에서Dev

GSON을 사용하여 중첩 된 JSON을 일반 컬렉션으로 구문 분석

분류에서Dev

Gson을 사용하여 키없이 중첩 된 JSON 객체 구문 분석

분류에서Dev

Json.Net을 사용하여 중첩 된 Json 구문 분석

분류에서Dev

Android 용 RetroFit을 사용하여 중첩 된 JSON 구문 분석

분류에서Dev

URL에서 중첩 된 JSON을 구문 분석하고 Java를 사용하여 배열에서 값 추출

분류에서Dev

Gson을 사용하여 Json 배열을 구문 분석 할 수 없습니다.

분류에서Dev

GSON을 사용하여 Ajax 요청에서 JSON 배열 구문 분석

분류에서Dev

중첩 배열의 GSON 구문 분석

분류에서Dev

어떻게 중첩 클래스 사용하여 개조 등의 내부 JSON 문자열을 구문 분석

분류에서Dev

Android에서 중첩 된 JSON 배열을 구문 분석하는 방법

분류에서Dev

다중 중첩 JSON 응답을 배열로 구문 분석하는 방법은 무엇입니까?

분류에서Dev

Retrofit을 사용하여 객체 배열로 JSON 배열 구문 분석

분류에서Dev

GSON 중첩 된 JSON 제대로 개체를 구문 분석하지

분류에서Dev

Gson fromJson 구문 분석 중첩 JSON

분류에서Dev

Python을 사용하여 중첩 된 JSON 데이터 구문 분석

분류에서Dev

Swift에서 Decodable을 사용하여 중첩 된 JSON 구문 분석

분류에서Dev

simpleXML을 사용하여 트리를 중첩 배열로 구문 분석하는 방법은 무엇입니까?

분류에서Dev

중첩 된 배열 문자열을 배열로 구문 분석

분류에서Dev

GSON을 사용하여 중첩 된 맵을 구문 분석하는 방법

분류에서Dev

GSON을 사용하여 키 및 탭으로 JSON 파일 구문 분석

분류에서Dev

PowerShell을 사용하여 JSON 배열 구문 분석

분류에서Dev

Jackson 2.0을 사용하여 JSON 객체 배열 구문 분석

분류에서Dev

GSON을 사용하여 json을 구문 분석하는 방법

분류에서Dev

Retrofit 및 GSON을 사용하여 JSON 배열을 어떻게 구문 분석 할 수 있습니까?

분류에서Dev

Angular.js를 사용하여 JSON에서 중첩 된 객체 배열 구문 분석

Related 관련 기사

  1. 1

    VBA 및 JSON을 사용하여 중첩 배열 구문 분석

  2. 2

    GSON을 사용하여 DistanceMatrix Google Api에서 중첩 배열 Json을 Java로 구문 분석

  3. 3

    GSON으로 여러 중첩 JSON 객체 / 배열을 구문 분석하는 방법은 무엇입니까?

  4. 4

    GSON을 사용하여 중첩 된 JSON을 구문 분석하는 방법

  5. 5

    GSON을 사용하여 중첩 된 JSON을 일반 컬렉션으로 구문 분석

  6. 6

    Gson을 사용하여 키없이 중첩 된 JSON 객체 구문 분석

  7. 7

    Json.Net을 사용하여 중첩 된 Json 구문 분석

  8. 8

    Android 용 RetroFit을 사용하여 중첩 된 JSON 구문 분석

  9. 9

    URL에서 중첩 된 JSON을 구문 분석하고 Java를 사용하여 배열에서 값 추출

  10. 10

    Gson을 사용하여 Json 배열을 구문 분석 할 수 없습니다.

  11. 11

    GSON을 사용하여 Ajax 요청에서 JSON 배열 구문 분석

  12. 12

    중첩 배열의 GSON 구문 분석

  13. 13

    어떻게 중첩 클래스 사용하여 개조 등의 내부 JSON 문자열을 구문 분석

  14. 14

    Android에서 중첩 된 JSON 배열을 구문 분석하는 방법

  15. 15

    다중 중첩 JSON 응답을 배열로 구문 분석하는 방법은 무엇입니까?

  16. 16

    Retrofit을 사용하여 객체 배열로 JSON 배열 구문 분석

  17. 17

    GSON 중첩 된 JSON 제대로 개체를 구문 분석하지

  18. 18

    Gson fromJson 구문 분석 중첩 JSON

  19. 19

    Python을 사용하여 중첩 된 JSON 데이터 구문 분석

  20. 20

    Swift에서 Decodable을 사용하여 중첩 된 JSON 구문 분석

  21. 21

    simpleXML을 사용하여 트리를 중첩 배열로 구문 분석하는 방법은 무엇입니까?

  22. 22

    중첩 된 배열 문자열을 배열로 구문 분석

  23. 23

    GSON을 사용하여 중첩 된 맵을 구문 분석하는 방법

  24. 24

    GSON을 사용하여 키 및 탭으로 JSON 파일 구문 분석

  25. 25

    PowerShell을 사용하여 JSON 배열 구문 분석

  26. 26

    Jackson 2.0을 사용하여 JSON 객체 배열 구문 분석

  27. 27

    GSON을 사용하여 json을 구문 분석하는 방법

  28. 28

    Retrofit 및 GSON을 사용하여 JSON 배열을 어떻게 구문 분석 할 수 있습니까?

  29. 29

    Angular.js를 사용하여 JSON에서 중첩 된 객체 배열 구문 분석

뜨겁다태그

보관