Java Android在不使用库的情况下将字符串反序列化为JSONObject
有没有一种方法可以将序列化为字符串的JSON转换回JSONObject,而无需安装其他库 我有一个JSON: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
{
"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);