最近和后台交互,对于gson的解析和封装熟悉了很多,为了给新手们一些例子,特意把过程写下来,好了,不废话
先来说说Gson解析吧,看下面一个json串
{
"data": [
{
"goodsName": "纯美床前凳03",
"modelCode": "纯美床前凳03",
"packageHight": 122,
"packageLength": 122,
"packageWidth": 122,
"propValues": "566皮,54/85/74#",
"qty": 1,
"recordDetailId": "391",
"skuCode": "LVD00000173"
}
],
"error": "任务下载成功",
"success": true,
"taskNo": "0000017"
}
拿到串后,分析:
1.最外层是个{},所以最外层用一个对象,也就是定义一个类来封装{}里的数据。
2.{}里是一些对象,每个对象按键值对相应匹配,而data这是一个数组对象,所以定义的时候用集合List封装
具体就不做分析,感觉自己的表达能力还是有些欠缺,还是上代码吧,先定义javaBean格式用来匹配Gson的解析
package cn.logistics.huojiwms.entity;
import java.util.List;
/**
*
* @author Administrator 入库字段json解析数据
*/
public class TaskNewEntity {
public String error;// 返回信息
public String success;// 请求状态
public String taskNo;//任务单号
/** 任务 **/
public List<Data> data;
public static class Data {
public String skuCode;// SkuCode
public String modelCode;//商品型号
public String goodsName;//商品名称
public String packageHight;//包长
public String packageLength;//包宽
public String packageWidth;//包高
public String propValues;//商品属性
public String qty;//包件数
public String recordDetailId;//任务明细
public String getSkuCode() {
return skuCode;
}
public void setSkuCode(String skuCode) {
this.skuCode = skuCode;
}
public String getPackageHight() {
return packageHight;
}
public void setPackageHight(String packageHight) {
this.packageHight = packageHight;
}
public String getPackageLength() {
return packageLength;
}
public void setPackageLength(String packageLength) {
this.packageLength = packageLength;
}
public String getPackageWidth() {
return packageWidth;
}
public void setPackageWidth(String packageWidth) {
this.packageWidth = packageWidth;
}
public String getQty() {
return qty;
}
public void setQty(String qty) {
this.qty = qty;
}
public String getRecordDetailId() {
return recordDetailId;
}
public void setRecordDetailId(String recordDetailId) {
this.recordDetailId = recordDetailId;
}
public String getModelCode() {
return modelCode;
}
public void setModelCode(String modelCode) {
this.modelCode = modelCode;
}
public String getPropValues() {
return propValues;
}
public void setPropValues(String propValues) {
this.propValues = propValues;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
public String getTaskNo() {
return taskNo;
}
public void setTaskNo(String taskNo) {
this.taskNo = taskNo;
}
public List<Data> getData() {
return data;
}
public void setData(List<Data> data) {
this.data = data;
}
}
解析就简单了,这就是Gson的强大之处,定义好数据格式,解析只用2行代码
public static Object parserFromJson(Class clazz, String jsonData) {
try {
Gson gson = new Gson();
return gson.fromJson(jsonData, clazz);
} catch (JsonParseException e) {
return null;
}
}使用上面的方法来解析时这样做:<pre name="code" class="java"><pre name="code" class="java">TaskNewEntity <span style="font-family: Arial, Helvetica, sans-serif;"> result = (TaskNewEntity) Parser.parserFromJson(TaskNewEntity.class, content);</span>
没有很详细的描述,生成复杂json也没时间写了,改天再继续,如果有什么复杂的json难解析或者难生成的,可以一起讨论,
邮箱xgpchina@163.com
本文详细介绍了如何使用Gson库进行JSON数据的解析和封装。通过一个具体的JSON字符串实例,解释了如何创建对应的Java Bean类,并利用Gson将JSON转换为Java对象。适合初学者参考。
1267

被折叠的 条评论
为什么被折叠?



