1

我想从字符串类型的 JSON 中解析数据。我的 JSON 响应看起来像

[{"order":-1,"number":"5"},{"order":0,"number":"7"},{"order":1,"number":"3"}]

我尝试使用下一个方法:

JSONArray json = new JSONArray("My JSON String");

        for (int i = 0; i < json.length(); i++)
        {
            JSONObject json_staticon = json.getJSONObject(i);

            if(json_staticon.getInt("order") == 0) {
                return json_staticon.getInt("number");
            }
        }

但我想使用 Google GSON 库来解析我的 JSON 响应,所以......有什么更好的方法来使用 GSON 获取number对象的价值order = 0

谢谢!

4

1 回答 1

0

使用 Gson

    Gson gson = new Gson();
    Type collectionType = new TypeToken<List<Orders>>(){}.getType();
    List<Orders> details = gson.fromJson(json, collectionType); // json is your json
    for (int i = 0; i <details.size(); i++) {
        Log.i("Order is ",""+details.get(i).order); // Log the order
        Log.i("Order Number is ",""+details.get(i).number); 
    }

订单.java

  public class Orders {

   String order,number;
  }

记录的值

06-15 04:22:31.282: I/Order is(2464): -1
06-15 04:22:31.282: I/Order Number is(2464): 5
06-15 04:22:31.282: I/Order is(2464): 0
06-15 04:22:31.282: I/Order Number is(2464): 7
06-15 04:22:31.282: I/Order is(2464): 1
06-15 04:22:31.282: I/Order Number is(2464): 3

也可以代替 for (int i = 0; i <details.size(); i++) {您使用增强的 for 循环 for (Orders orders: details) {

于 2014-06-15T08:21:09.750 回答