首页 > 解决方案 > java.lang.Integer 类型的值无法转换为 JSONObject

问题描述

我想从JSON显示我的 android的高分。但我有错误说 value 100 at HS of type java.lang.Integer cannot be converted to JSONObject

这是 JSON 的样子

{
"HS": 100
}

这是我显示 JSON 值的代码

public void getData(){
        AndroidNetworking.get("http://192.168.1.19/web_admin/public/api/highSkor_api")
                .setPriority(Priority.LOW)
                .build()
                .getAsJSONObject(new JSONObjectRequestListener() {
                    @Override
                    public void onResponse(JSONObject response) {
                            //adding the product to product list
                            try {
                                //get JSON data
                                JSONObject data = response.getJSONObject("HS");
                                int HS = data.getInt("HS");
                                tx_hscore.setText(getString(R.string.high_score, HS);
                                Log.d(TAG, "ISI : "+HS);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        //Toast.makeText(Result.this, "High Score : "+data_highSkor.getHighSkor(), Toast.LENGTH_LONG).show();
                    }

                    @Override
                    public void onError(ANError error) {
                        Log.e(TAG, "onError : "+ error);
                        Toast.makeText(Result.this, "Failed to reach server : "+error.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });

    }

标签: jsonandroid-studiointeger

解决方案


你需要更换

JSONObject data = response.getJSONObject("HS");

int hs = response.getInt("HS")

因为response已经是一个JSONObject

如果你的 json 是这样的

{
"HS": {
     "key1": "value1",
     "key2": "value2"
    }
 }

然后你可以做

JSONObject data = response.getJSONObject("HS");


推荐阅读