出现错误:无法将java.lang.String强制转换为org.json.JSONObject

时间:2019-02-04 19:55:35

标签: android

运行代码时出现以下错误。

  

java.lang.String无法转换为org.json.JSONObject

JSONObject data = ((JSONObject) response.get("data"));
String setting_name =  data.getString("setting_name");
String setting_value = data.getString("setting_value");

4 个答案:

答案 0 :(得分:1)

您的response.get("data");类型是表示 JSON String。因此,为了从中获取JSONObject,您需要先 parse

您可以通过调用JSONObject类中的以下 constructor 来实现:

JSONObject(String json);

使用JSON字符串中的名称/值映射创建新的 JSONObject

答案 1 :(得分:0)

为什么要将其强制转换为JSONObject?

JSONObject data = new JSONObject(response.get("data"));  

除此之外,很难看到更多的code / json数据。

答案 2 :(得分:0)

首先将您的数据作为字符串尝试打印以确保它包含JSON ...然后将其传递给JSONObject,之后您将能够检索到您提到的JSON对象。

JSONObject data = new JSONObject(YOUR-STRING-GOES-HERE);

之后,您可以做。

String setting_name =  data.getString("setting_name");

答案 3 :(得分:0)

确保字符串是有效的 JSON。您可以使用带有给定字符串的 JSONObject 参数化构造函数将 JSON 字符串转换为有效的 JSON 对象。

例如

String jsonString = "{'setting_name': 'volume', 'setting_value':10}"; 
JSONObject data = new JSONObject(jsonString);
String setting_name = data.getString("setting_name"); //gives volume
String setting_value = data.getString("setting_value"); //gives 10