-4

我有json数据格式

{
   "status":200,
   "message":"ok",
   "response": {"result":1, "time": 0.0123, "values":[1,1,0,0,0,0,0,0,0]
   }
}

我想获取一个值数组的值并将其放在 Eclipse 中的 textView 上。在 Eclipse 中查看我的代码

protected void onPostExecute (String result){
try {
JSONobject json = new JSONObject(result);
tv.setText(json.toString(1));
}catch (JSONException e){
e.printStackTrace();
}
}
4

3 回答 3

1

您可以使用 GSON

为您的响应创建 POJO

public class Response{
   private int result;
   private double time;
   private ArrayList<Integer> values;

   // create SET's and GET's
}

然后使用 GSON 创建您想要的对象。

protected void onPostExecute (String result){
  try {
     Gson gson = new GsonBuilder().create();
     Response p = gson.fromJson(result, Response.class);
     tv.setText(p.getValues());
  }catch (JSONException e){
    e.printStackTrace();
  }
}
于 2017-09-13T02:53:46.470 回答
0

您可以使用杰克逊库进行 json 解析。

ObjectMapper mapper = new ObjectMapper();
Map map = mapper.readTree(json);
map.get("key");

如果您知道 json 是 JSONObject 类的实例,则可以使用 readTree,否则使用 typeref 并使用 readValue 来获取地图。

于 2017-09-13T02:41:07.637 回答
0
    protected void onPostExecute (String result){
    try {
    JSONObject json = new JSONObject(result);
    JSONObject resp = json.getJSONObject("response");
JSONArray jarr = resp.getJSONArray("values");
     tv.setText(jarr.get(0).toString(1));
    }catch (JSONException e){
     e.printStackTrace(); 
    }
     }
于 2017-09-13T20:04:18.840 回答