1

我有一个 JSON 对象,我想在这个 URL https://api.adviceslip.com/advice解析这个内容:{“slip”:{“id”:137,“advice”:“你没那么重要; 重要的是你做了什么。"}}

我已经在 Android Studio 中编写了这段代码,但它似乎不起作用。

String jsonString = handler.httpServiceCall(url);
            if (jsonString != null) {
                try {
                    JSONObject jsonObject = new JSONObject(jsonString);

                    JSONObject slip = jsonObject.getJSONObject("slip");

                    String id = slip.getString("id");
                    Log.d("slip id:", id);
                    String advice = slip.getString("advice");
                    Log.d("slip adv:", advice);
                    HashMap<String, String> map = new HashMap<>();
                    map.put("id", id);
                    map.put("advice", advice);
                    adviceSlip.setText(map.get("advice"));



                }

任何帮助,将不胜感激 :)

4

2 回答 2

0

一个问题是您正在尝试获取一个String对象Int,这可能是您的错误之一,请更改您的

splip.getString("id");

经过

slip.getInt("id);

另一个是您正在创建一个HashMap<String,String>,但您从中获得的 idjson是一个Int,也许您应该将其更改为使用HashMap<Int,String>

于 2021-06-14T14:22:06.313 回答
-1
 You can get the value from the jsonobject and simple set that value on the textview. 
   

   String jsonString = handler.httpServiceCall(url);
    if (jsonString != null) {
        try {
            JSONObject jsonObject = new JSONObject(jsonString);

            JSONObject slip = jsonObject.getJSONObject("slip");

            String id = slip.getString("id");
            Log.d("slip id:", id);
            String advice = slip.getString("advice");
            adviceSlip.setText(advice);



        }
于 2021-06-08T13:54:38.553 回答