2013-07-24 2 views
0
내가 주제 api.The에서 JSON 응답을 가져 오는 데 사용됩니다 주제 ID를 얻기 위해 고글의 search api을 사용하고

내가 있도록이 해독 할 응답이해독 JSON 응답은 주제 API를

{ 
"id":"/m/01d5g", 
"property":{ 
    "/amusement_parks/ride_theme/rides":{...}, 
    "/award/ranked_item/appears_in_ranked_lists":{...}, 
    "/book/book_character/appears_in_book":{ 
      "valuetype":"object", 
      "values":[ 
       { 
        "text":"Inferno", 
        "lang":"en", 
        "id":"/m/0g5qs3", 
        "creator":"/user/duck1123", 
        "timestamp":"2010-02-11T04:00:59.000Z" 
       }, 
       { 
        "text":"Batman: Year One", 
        "lang":"en", 
        "id":"/m/0hzz_1h", 
        "creator":"/user/anasay", 
        "timestamp":"2012-01-25T11:05:03.000Z" 
       }, 
       { 
        "text":"Batman: The Dark Knight Returns", 
        "lang":"en", 
        "id":"/m/0hzz_sb", 
        "creator":"/user/anasay", 
        "timestamp":"2012-01-25T11:22:17.001Z" 
       }, 
       { 
        "text":"Batman: Son of the Demon", 
        "lang":"en", 
        "id":"/m/071l77", 
        "creator":"/user/wikimapper", 
        "timestamp":"2013-07-11T15:20:32.000Z" 
       }, 
       { 
        "text":"Joker", 
        "lang":"en", 
        "id":"/m/04zxvhs", 
        "creator":"/user/wikimapper", 
        "timestamp":"2013-07-11T16:58:37.000Z" 
       }, 
       { 
        "text":"Arkham Asylum: A Serious House on Serious Earth", 
        "lang":"en", 
        "id":"/m/0b7hyw", 
        "creator":"/user/wikimapper", 
        "timestamp":"2013-07-11T19:26:54.000Z" 
       } 
      ], 
      "count":6.0 
    }, 
    "/book/book_subject/works":{...}, 
    "/comic_books/comic_book_character/cover_appearances":{...}, 
    ... 
} 
} 

과 같은 반환 구글의 난 "/ book/book_character/appear_in_book"과 같은 관련 정보를 얻을 수 있습니다. 자체는 응답을위한 속성이며 "text"와 "id"가 원하는 값만 필요합니다. "text": "Batman : Year One""id": "/ m/0hzz_1h". 응답에 고정 된 속성이 없으며 응답 ID에 따라 다를 수 있습니다. 내가 하나 개의 직렬화 된 클래스로 "/ 도서/book_character/appears_in_book"를 저장하고 같은 값의 컬렉션을 포함하는 ID 및 및 이 클래스의 이름을 변수로 appears_in_book 텍스트가 할 수있는 난 자바 클래스에서이 JSON 응답을 은밀한 방법에 대해 설명합니다.

이 작업을 수행하려면 GSON으로 생각했습니다. 속성의 이름이 일정하지 않기 때문에 JSON을 Java Object로 변환하는 데 사용할 수 없습니다. 현재 하드 코딩 및 자바 변수를 작성하여 각 속성을 통해 iterating 오전.

일부 사용자가 효율적인 방법을 제공 할 수 있다면 도움을 주셔서 감사합니다.

+0

은 내가 사용하여 구문 분석 JSON-2.4-lib 디렉토리하지만 여전히 내가 수동으로 "텍스트"그리고 난이 느끼고 JSONArray에서 "ID"를 추출해야하는 더 좋은 방법이 될 수 있어야합니다 그것을 할! – Yogesh

답변

1

Java에서 리플렉션을 사용하여 동적으로이 작업을 수행 할 수 있지만 이는 Java의 고급 기능이며 필요 이상으로 코드가 복잡해질 수 있습니다.

참조 : Dynamically create an object in java from a class name and set class fields by using a List with data

간단한 대안은 그들이 JSON 데이터에 나와있는대로 정확하게 단지 중첩지도 및 목록의 무리로 JSON을 구문 분석하는 것입니다.

은 참조 : @Shawn이 제안 How to parse JSON in Java