簡體   English   中英

如何使用json對象獲取數據並在listivew中顯示?

[英]How to use get data using json object and display in listivew?

我有這樣的JSON

{

    "data": 

[

{

    "id": 1,
    "Name": "Choc Cake",
    "Image": "1.jpg",
    "Category": "Meal",
    "Method": "",
    "Ingredients": 

[

{

    "name": "1 Cup Ice"

},

        {
            "name": "1 Bag Beans"
        }
    ]

},
{

    "id": 2,
    "Name": "Ice Cake",
    "Image": "dfdsfdsfsdfdfdsf.jpg",
    "Category": "Meal",
    "Method": "",
    "Ingredients": 

[

                {
                    "name": "1 Cup Ice"
                }
            ]
        }
    ]

}

我正在使用JSON對象來對數據進行反序列化

這就是我想要的

JSONObject jsonObj = new JSONObject(jsonStr);
String first = jsonObj.getJSONObject("data").getString("name");
System.out.println(first);

但似乎沒有得到名字或任何東西不確定我做錯了什么?

然后我試圖將它顯示到列表視圖中但尚未到達那個部分

data是JSON數組,而不是JSONObject try:jsonObj.getJSONArray(“data”)。getJSONObject(0).getString(“name”)還注意getString和optString之間的區別,如果你不想在null上有異常使用以后。

首先從下面的方法解析你的Json,

private ArrayList<String> getStringFromJson(String jsonStr)
{
    ArrayList<String> mNames = new ArrayList<String>();
    JSONArray array = new JSONArray(jsonStr);
    for (int i = 0; i < array.length(); i++) {
        JSONObject row = array.getJSONObject(i);
        mNames= row.getString("Name");
    }
    return mNames;
}
try {
     JSONObject jsonObj = new JSONObject(jsonStr);
     jsonObj.getJSONArray("data").getJSONObject(0).getString("name")
} catch (JSONException e) {

}

數據是一個json數組。 對json對象使用getJsonObject。

請參閱此示例以創建ListView並使用來自json對象的數據填充其適配器。

使用GSON而不是JSON。 希望它能幫到你。

  GsonBuilder gsonBuilder = new GsonBuilder();
  Gson gson = gsonBuilder.create();
    List<Data> datas= new ArrayList<Data>();
    datas= Arrays.asList(gson.fromJson(jsonString, Data[].class));

    public class Ingredients {
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        private String name;
    }




public class Data {

    private int id;
    private String Name;
    private String Image;
    private String Category;
    private String Method;

    public List<Ingredients> getIngredients() {
        return Ingredients;
    }

    public void setIngredients(List<Ingredients> ingredients) {
        Ingredients = ingredients;
    }

    private List<Ingredients> Ingredients = new ArrayList<Ingredients>();


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getImage() {
        return Image;
    }

    public void setImage(String image) {
        Image = image;
    }

    public String getCategory() {
        return Category;
    }

    public void setCategory(String category) {
        Category = category;
    }

    public String getMethod() {
        return Method;
    }

    public void setMethod(String method) {
        Method = method;
    }



}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM