json数据解析总结

来源:互联网 发布:手机淘宝买东西流程 编辑:程序博客网 时间:2024/06/04 23:00

现在项目用到的都是json数据交互格式。json交互的好处数据格式非常清楚。

下面主要讲json解析,封装以后再说。

最简单的格式:假设:strResult={  "status": true,  "error": null}

JSONObject jsonObject = new JSONObject(strResult);boolean status=jsonObject.getBoolean("status");

       
解析普通数据:假设 strResult={"singer":{"id":01,"name":"黎明","gender":"男"}}

JSONObject jsonObject = new JSONObject(strResult);JSONObject s =jsonObject.getJSONObject("singer");int id=s.getInt("id");

解析数组:假设 strResult={"desc_arr":[ "你好",“他们”,"你是?"]}

        JSONObject jsonObject = new JSONObject(strResult);        JSONArray reasonJsonArray = jsonObject .getJSONArray("desc_arr");        List<String> reasonList=new ArrayList<String>();        for(int n=0;n<reasonJsonArray.length();n++){        String reason=reasonJsonArray.get(n).toString()==null ? "":reasonJsonArray.get(n).toString();              reasonList.add(reason);        }

解析数列:假设 

strResult={    "status": true,    "error": null,    "result": {        "show": 1,        "banner": "",        "list": [            {                "user_id": 3713,                "path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_6.jpg",                "str": "活跃"            },            {                "user_id": 43971,                "path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_5.jpg",                "str": "点赞第一人"            },            {                "user_id": 3713,                "path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_6.jpg",                "str": "给赞第一人"            },            {                "user_id": 43971,                "path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_5.jpg",                "str": "发布第一人"            }        ]    }

解析: 

JSONObject jsonObject = new JSONObject(strResult);if (!jsonObject.getBoolean("status")) {     return masterList;    }JSONObject jsonResult = jsonObject.getJSONObject("result");JSONArray jsonArray = jsonResult.getJSONArray("list");if (jsonArray.length() == 0) {     return masterList;    }for (int i = 0; i < jsonArray.length(); i++) {                        MasterInfo masterInfo = new MasterInfo();                        JSONObject jsonMaster = jsonArray.getJSONObject(i);                        masterInfo.setUserId(jsonMaster.isNull("user_id") ? 0 : jsonMaster.getInt("user_id"));                        masterInfo.setHonor_detail(jsonMaster.isNull("str") ? "" : jsonMaster.getString("str"));                        masterInfo.setUserPath(jsonMaster.isNull("path_square") ? "" : jsonMaster.getString("path_square"))                        masterList.add(masterInfo);}

       暂时现在基本想到了就这几个json解析,平常复杂的都是上面混合嵌套的,思路清楚就好了。

以后想到最添加。

0 0
原创粉丝点击