虽然刚工作一年,不过在这期间遇到很多新人,对于json的理解视乎过于复杂。当然也有直接就是用gson,或者阿里的fson等等。单个人认为,只有整整理解了最基础的json才能更好的运用这些封装好的json工具。(以下以上都属于个人观点,有不妥请提出,相互学习)
一、使用工具校验,格式化json
很长很长的json字符,看上去很繁杂很其实很简单,不过在拿到一个json之前必须先分析得到json格式,在此推荐 http://www.bejson.com/jsoneditoronline/。在该站内还提供各种关于json的辅助工具。
二、对json数据格式的理解(语言选取:Java)
很多情况下,新手总是操之过急的去解析json,然而对于手里的json数据格式完全没有理解清楚。这里简单的推荐几种格式的解析;
使用的方法为Java
类型1:JSONObject 选取JSONArray 中JsonObject类型,数据类型如下
{
"str1": "str","list": [
{
"obj": "obj"
},
{
"obj": "obj"
}
],
"str2":"str2"
}
解析代码
JSONObject object=new JSONObject (“json字符串”);
JSONArray array=object.getJSONArray("list");//括号内为要jsonarray的key
for(int i=0;i<array.length();i++){
JSONObject object2=array.getJSONObject(i);
String obj=object2.getString("obj");
}
这样就完成了对JSONArray 中对象的获取,其实这只是比获取JSONArray 中字符串稍微稍微难一点点;有的人可能会遇到在 内嵌中还有JSONObject 或者JSONArray ,
如果内嵌有JSONObject 则直接在for中创建一个JSONObject对象 ,
代码如下
for(int i=0;i<array.length();i++){
JSONObject object2=array.getJSONObject(i);
JSONObject obj=object2.getString("obj");
}
如果是JSONArray 则需要 在创建一个JSONArray 对象并且遍历(当然如果太多层,请考虑内存,代码执行数度),
代码如下
for(int i=0;i<array.length();i++){
JSONObject object2=array.getJSONObject(i);
JSONArray array2=object2.getString("obj");
forfor(int j=0;j<array.length();j++){
//根据具体情况来写
}
}
总结:
json很简单,无论怎么复杂他就像一个多细胞生物,每一种细胞功能只要弄懂了,无论怎么变化,你都能运筹帷幄。