利用原生JSONObject解析特殊json数据.
发布时间:2020-12-16 19:44:06 所属栏目:百科 来源:网络整理
导读:说来解析json数据,大部分人都会使用Gson或者fastGson,这两个我都用过,相比原生解析确实爽很多,但这并不意味着你以后就可以完全把原生解析丢掉,这不,今天后台给我返回的一串json数据我用gson怎么都解析不了,只好重操旧业了. JSONObject解析 -后台返回的json数
说来解析json数据,大部分人都会使用Gson或者fastGson,这两个我都用过,相比原生解析确实爽很多,但这并不意味着你以后就可以完全把原生解析丢掉,这不,今天后台给我返回的一串json数据我用gson怎么都解析不了,只好重操旧业了. JSONObject解析-后台返回的json数据 {"reusltContent":"{"transid":"17121503111546239033"}","resultCode":"ok"}
猛的一看,这不是很简单吗,事实可不是你所看到的那样的.用Gson解析,直接报错,打印log,输出以下信息. java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 19 path $.reusltContent
这个问题我就不解释了. JSONObject jsonObject = null;
jsonObject = new JSONObject(result);
PayLogUtils.e("jsonObject-->"+jsonObject);
String resultCode = jsonObject.getString("resultCode");
PayLogUtils.e("resultCode-->"+resultCode);
String reusltContent = jsonObject.getString("reusltContent");
PayLogUtils.i("reusltContent-->"+reusltContent);
-相信到了这一步,大家都没什么问题,此时输出的内容也是如下: reusltContent-->{"transid":"17121503111546239033"}
–呵呵,这不又是一个jsonObject吗?那就简单了,我再次解析: JSONObject object = new JSONObject(reusltContent);
String transid = object.getString("transid");
-再来看看Log打印出什么了: transid-->17121503111546239033
这就完全把它解析出来了. 总结-这次解析的难点在于,需要拿到key:reusltContent的对象,然后再用JSONObject再解析一次. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |