本文共 4711 字,大约阅读时间需要 15 分钟。
json:
{'flag':true,'data':{'name':'张三','age':18,'sex':true}}
步骤 :
获得 解析者
JsonParser parser = new JsonParser();
获得 根节点元素
JsonElement element = parser.parse(json);
根据 文档判断根节点属于 什么类型的 Gson节点对象
// 假如文档 显示 根节点 为对象类型 // 获得 根节点 的实际 节点类型 JsonObject root = element.getAsJsonObject();
取得 节点 下 的某个节点的 value
// 获得 flag 节点的值, flag 节点为基本数据节点 JsonPrimitive flagJson = root.getAsJsonPrimitive("flag"); // 基本节点取值 boolean flag = flagJson.getAsBoolean(); // 获得 data 节点的值,data 节点为Object数据节点 JsonObject dataJson = root.getAsJsonObject("data"); // 将节点上的数据转换为对象 Student stu = new Gson().fromJson(dataJson,Student.class);
完整代码
public static void main(String[] args) { // json 节点解析 String json = "{'flag':true,'data':{'name':'张三','age':18,'sex':true}}"; // 1.获得 解析者 JsonParser parser = new JsonParser(); // 2.获得 根节点元素 JsonElement element = parser.parse(json); // 3.根据 文档判断根节点属于 什么类型的 Gson节点对象 JsonObject root = element.getAsJsonObject(); // 4. 取得 节点 下 的某个节点的 value JsonPrimitive flagJson = root.getAsJsonPrimitive("flag"); boolean flag = flagJson.getAsBoolean(); JsonObject dataJson = root.getAsJsonObject("data"); Student student = new Gson().fromJson(dataJson, Student.class); System.out.println(flag); System.out.println(student);}
案例1:
json字符串
[ { "array": [ { "salaryId": "297eb58f5a6029a1015a60460fb40096", "salaryName": "劳动补助" }, { "salaryId": "8a28dd5b5653ed39015653eddf4e0002", "salaryName": "基本工资" }, { "salaryId": "8a28dd5b5669a08301566eaddd1e0094", "salaryName": "绩效工资" } ], "result_code": 0 }]
解析方法
private ListparseTypeJson(String json) { List lists = new ArrayList<>(); JSONArray jsonArray = JSONArray.parseArray(json); JSONObject jsonObject = jsonArray.getJSONObject(0); JSONArray array = jsonObject.getJSONArray("array"); if (array.size() != 0) { for (int i = 0; i < array.size(); i++) { JSONObject type = array.getJSONObject(i); SalaryTypeModel model = new SalaryTypeModel(); for (String key : type.keySet()) { LogUtils.d(key + ", " + type.get(key)); model.setSalaryId(key); model.setSalaryName((String) type.get(key)); } lists.add(model); } } return lists;}
案例2:
json字符串
{ "array": [ { "name": "系统管理员", "releaseDate": "2016-10", "其他补贴": 1, "岗位津贴": 1, "上下班交通补贴": 1, "课时津贴": 1, "薪级工资": 1, "岗位工资": 1, "超工作量津贴": 1, "独生子女保健费": 1, "粮油补贴": 1, "salary_total": 9 } ], "result_code": 0}
解析方法
private MapparseJson(String json) { Map maps = new HashMap (); JSONObject jsonObj = JSONObject.parseObject(json); JSONArray jsonarray = jsonObj.getJSONArray("array"); if (jsonarray.size() != 0) { JSONObject c = (JSONObject) jsonarray.get(0); for (String key : c.keySet()) { maps.put(key, c.get(key)); } } return maps;}
解析根节点为”[]”的json:
json字符串
[ { "id": 1580615, "name": "人人", "packageName": "com.renren.mobile.android", "iconUrl": "app/com.renren.mobile.android/icon.jpg", "stars": 2, "size": 21803987, "downloadUrl": "app/com.renren.mobile.android/com.renren.mobile.android.apk", "des": "2005-2014 你的校园一直在这儿。中国最大的实名制SNS网络平台,大学生" }, { "id": 1540629, "name": "掌上营业厅", "packageName": "com.ct.client", "iconUrl": "app/com.ct.client/icon.jpg", "stars": 2, "size": 4794202, "downloadUrl": "app/com.ct.client/com.ct.client.apk", "des": "中国电信掌上营业厅是中国电信集团【官方】唯一指定服务全国电信用户的自助服务客户端" }]
解析方法
JSONArray jsonArray=new JSONArray(json);for(int i=0;i
解析根节点为”{}”的json:
json字符串
{ "id": 1525490, "name": "有缘网", "packageName": "com.youyuan.yyhl", "iconUrl": "app/com.youyuan.yyhl/icon.jpg", "stars": 4, "size": 3876203, "downloadUrl": "app/com.youyuan.yyhl/com.youyuan.yyhl.apk", "des": "产品介绍:有缘是时下最受大众单身男女亲睐的婚恋交友软件。有缘网专注于通过轻松、" }
解析方法
JSONObject object = new JSONObject(json);long id = object.getLong("id");String name = object.getString("name");String packageName = object.getString("packageName");String iconUrl = object.getString("iconUrl");float stars = Float.parseFloat(object.getString("stars"));long size = object.getLong("size");String downloadUrl = object.getString("downloadUrl");String des = object.getString("des");
转载地址:http://uvvpi.baihongyu.com/