Java Android在不使用库的情况下将字符串反序列化为JSONObject

Java Android在不使用库的情况下将字符串反序列化为JSONObject,java,android,Java,Android,有没有一种方法可以将序列化为字符串的JSON转换回JSONObject,而无需安装其他库 我有一个JSON: { "asd": false, "qwe": false, "zxc": false, "qaxz": false, "asdqwe": false, "asdqwe": false, "wexd": false } 以字符串形式嵌入到另一个JSON对象用户中,名称为app_settings 然后我试试这个: JSONObject settings = us

有没有一种方法可以将序列化为字符串的JSON转换回JSONObject,而无需安装其他库

我有一个JSON:

{
  "asd": false,
  "qwe": false,
  "zxc": false,
  "qaxz": false,
  "asdqwe": false,
  "asdqwe": false,
  "wexd": false
}
以字符串形式嵌入到另一个JSON对象用户中,名称为app_settings

然后我试试这个:

JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS);
以下是我得到的一个例外:

    06-20 12:15:19.105: W/System.err(17085):
 org.json.JSONException: Value {"asd":false,"qwe":false,"zxc":false,"qaxz":false,"asdqwe":false,"asdqwe":false,"wexd":false}
 at app_settings of type java.lang.String cannot be converted to JSONObject
解决方案

更改:

JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS);

它起作用了。

有一个字符串。

你可以简单地做


JSONObject obj=new JSONObject您的_字符串

只要您的Android项目中已经包含了JSONObject库,您就可以使用

JSONObject j = new JSONObject(YOUR STRING);
而不是做

JSONObject settings = new JSONObject(user.getString(JSONKeys.USER_SETTINGS));
我想你可以用

JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS);

为了避免不必要的json->string->json解析。

还有哪些附加库?让我弄清楚,用户是另一个JSONObject,这个usr JSONObject有一个key-value对,key=app_设置,值等于您提到的JSONObject。您想将此jsonobject存储在另一个jsonobject中吗?我这样做了,但遇到了一个异常。我将把它粘贴到问题中当你把它转换成json时,它是否抛出exceptionchanged JSONObject settings=user.getJSONObject JSONKEYS.user\u settings;to JSONObject settings=新建JSONObject.getStringJSONKeys.USER\u设置;解决了我的问题
JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS);