Gson을 사용하여 목록 객체 JSON 구문 분석

보 투스

Google Gson 라이브러리로 Json을 구문 분석하려고하는데 현재 작동하지 않습니다 ...

다음은 내가 가져야 할 Json입니다.

{
"shoppingLists": [
    {
        "ShoppingList": {
            "id": "51",
            "name": "loool",
            "created": "2014-03-22 13:03:22",
            "modified": "2014-03-22 13:03:22"
        },
        "ShoppingItem": [
            {
                "id": "24",
                "shopping_item_category_id": "19",
                "name": "Biscuits",
                "description": "",
                "created": "2014-02-05 17:43:45",
                "modified": "2014-02-05 17:43:45",
                "category_name": "Confiseries \/ Gouters"
            },
            {
                "id": "25",
                "shopping_item_category_id": "19",
                "name": "Snickers",
                "description": "",
                "created": "2014-02-05 17:44:08",
                "modified": "2014-02-05 17:44:08",
                "category_name": "Confiseries \/ Gouters"
            },
            {
                "id": "26",
                "shopping_item_category_id": "19",
                "name": "C\u00e9reales",
                "description": "",
                "created": "2014-02-05 17:44:57",
                "modified": "2014-02-05 17:44:57",
                "category_name": "Confiseries \/ Gouters"
            }
        ]
    }
 ]
}

내 모델은 다음과 같습니다.

shoppingLists :

public class shoppingLists {
        public ShoppingList ShoppingList;
        public List<ShoppingItem> ShoppingItems;
}

쇼핑리스트 :

public class ShoppingList {
public int id;
public String name;
public String created;
public String modified;
}

ShoppingItem :

public class ShoppingItem {
public int id;
public int shopping_item_category_id;
public String name;
public String description;
public String created;
public String modified;
public String category_name;
}

다음은 서버에서 Json을 가져 오는 AsyncTask입니다.

public class APIRetrieveLists extends AsyncTask<APIRequestModel, Void, List<shoppingLists>>{

SQLHelper _sqlHelper = null;
Context _context;
ProgressBar _pb;

public APIRetrieveLists(Context context, ProgressBar pb){
    this._context = context;
    this._pb = pb;
}


@Override
protected void onPreExecute(){
}

@Override
protected void onPostExecute(List<shoppingLists> model){
    this._sqlHelper = new SQLHelper(this._context);
    if (model != null){
        for (shoppingLists cn : model){
            Log.i("infos", "list's name => " + cn.ShoppingList.name);
        }
    }else{
        Log.i("infos", "model is null");
    }
}

@Override
protected List<shoppingLists> doInBackground(APIRequestModel... arg0) {
    APIRequestModel model = arg0[0];
    try
    {
        try
        {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("access_token", model.getToken()));
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://apiurl/index.json");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
            HttpResponse response = httpclient.execute(httppost);
            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String s = "";
            String all = "";
            while ((s = reader.readLine()) != null){
                all += s;
            }
            Gson gson = new Gson();
            List<shoppingLists> Obj = (List<shoppingLists>) gson.fromJson(all, new TypeToken<List<shoppingLists>>(){}.getType());
            return (Obj);
        } 
        catch (ClientProtocolException e) {
            Log.i("infos", "first");
            return (null);
        } 
    }
    catch (Exception e){
        Log.i("infos", "second");
        return (null);
    }
}
}

예외 "second"는 항상 발생합니다 ... Log.i ( "infos", "model is null"); 또한 실행됩니다. 누군가 도울 수 있다면 :) 감사합니다! 문안 인사.

json

푸루 쇼탐

jsonObject에 키로 shoppingLists가 있고 값으로 ShoppingListItem의 배열이 있으므로 shoppingLists에 래퍼를 하나 더 추가하십시오. 또한 @SerializedNameJson의 키와 일치하지 않기 때문에 ShoppingItems 필드 에 주석 을 달아야합니다.

아래에서 업데이트 된 클래스 및 파서 찾기

Gson gson = new Gson();
FinalClass myObj = gson.fromJson(jsonString, FinalClass.class);

클래스

public class FinalClass {
    public ArrayList<ShoppingListItem> shoppingLists;
}

public class ShoppingListItem {
    public ShoppingList ShoppingList;
    @SerializedName("ShoppingItem")
    public List<ShoppingItem> ShoppingItems;
}

public class ShoppingList {
    public int id;
    public String name;
    public String created;
    public String modified;
}

public class ShoppingItem {
   public int id;
   public int shopping_item_category_id;
   public String name;
   public String description;
   public String created;
   public String modified;
   public String category_name;
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

객체 목록을 포함하는 JSON을 구문 분석하는 방법

분류에서Dev

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

분류에서Dev

URL에서 객체 목록으로 Json을 구문 분석하는 Android Java

분류에서Dev

JSON 목록을 객체로 구문 분석

분류에서Dev

동일한 필드 이름을 가진 객체를 가진 Gson을 사용하여 json 구문 분석

분류에서Dev

GSON WHen 객체를 사용하여 JSON을 구문 분석하는 방법은 JSONObject 또는 JSONArray입니다.

분류에서Dev

Gson을 사용하여 일반 필드가있는 항목 목록으로 Json 구문 분석

분류에서Dev

Gson을 사용하여 목록 목록을 구문 분석하는 방법

분류에서Dev

여러 개체 Android를 사용하여 목록보기로 JSON 구문 분석

분류에서Dev

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

분류에서Dev

목록을 구문 분석하여 json 목록 생성

분류에서Dev

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

분류에서Dev

GSON을 사용하여 JSON 구문 분석

분류에서Dev

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

분류에서Dev

Android에서 GSON을 사용하여 JSON 구문 분석

분류에서Dev

Jackson 또는 Gson을 사용하여 JSON 구문 분석

분류에서Dev

JSON 객체 구문 분석-목표 C

분류에서Dev

JSON을 사용하지 않고 문자열 객체 구문 분석

분류에서Dev

Gson을 사용하여 동적 키 개체 내부의 동적 키 개체로 JSON 구문 분석

분류에서Dev

JSON을 객체로 구문 분석

분류에서Dev

JSON을 Java 객체로 구문 분석

분류에서Dev

Android는 gson이 사용자 정의 객체로 구문 분석 한 json 배열을 얻습니다.

분류에서Dev

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

분류에서Dev

구문 분석 JSON 여러 객체

분류에서Dev

JSON을 여러 Typescript 객체로 구문 분석

분류에서Dev

jq를 사용하여 여러 JSON 객체의 특정 값을 csv로 구문 분석하는 방법

분류에서Dev

각도를 사용하여 Json 객체에서 Json 배열을 구문 분석하는 방법

분류에서Dev

기본 JSON 객체를 구문 분석 할 때 GSON이 null을 반환하지 않도록하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

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

  2. 2

    객체 목록을 포함하는 JSON을 구문 분석하는 방법

  3. 3

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

  4. 4

    URL에서 객체 목록으로 Json을 구문 분석하는 Android Java

  5. 5

    JSON 목록을 객체로 구문 분석

  6. 6

    동일한 필드 이름을 가진 객체를 가진 Gson을 사용하여 json 구문 분석

  7. 7

    GSON WHen 객체를 사용하여 JSON을 구문 분석하는 방법은 JSONObject 또는 JSONArray입니다.

  8. 8

    Gson을 사용하여 일반 필드가있는 항목 목록으로 Json 구문 분석

  9. 9

    Gson을 사용하여 목록 목록을 구문 분석하는 방법

  10. 10

    여러 개체 Android를 사용하여 목록보기로 JSON 구문 분석

  11. 11

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

  12. 12

    목록을 구문 분석하여 json 목록 생성

  13. 13

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

  14. 14

    GSON을 사용하여 JSON 구문 분석

  15. 15

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

  16. 16

    Android에서 GSON을 사용하여 JSON 구문 분석

  17. 17

    Jackson 또는 Gson을 사용하여 JSON 구문 분석

  18. 18

    JSON 객체 구문 분석-목표 C

  19. 19

    JSON을 사용하지 않고 문자열 객체 구문 분석

  20. 20

    Gson을 사용하여 동적 키 개체 내부의 동적 키 개체로 JSON 구문 분석

  21. 21

    JSON을 객체로 구문 분석

  22. 22

    JSON을 Java 객체로 구문 분석

  23. 23

    Android는 gson이 사용자 정의 객체로 구문 분석 한 json 배열을 얻습니다.

  24. 24

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

  25. 25

    구문 분석 JSON 여러 객체

  26. 26

    JSON을 여러 Typescript 객체로 구문 분석

  27. 27

    jq를 사용하여 여러 JSON 객체의 특정 값을 csv로 구문 분석하는 방법

  28. 28

    각도를 사용하여 Json 객체에서 Json 배열을 구문 분석하는 방법

  29. 29

    기본 JSON 객체를 구문 분석 할 때 GSON이 null을 반환하지 않도록하려면 어떻게해야합니까?

뜨겁다태그

보관