运行代码时出现以下错误。
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");
答案 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