Gson

版本 gson-2.2.4.jar

java 实体

Goods.java

public class Goods implements Serializable{

    private static final long serialVersionUID = 1L;
    //商品名称
    private String goodsName;
    //商品总价
    private String goodsCost;
    //商品数量
    private String goodsNum;
    //商品单价
    private String goodsPrice;

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsCost() {
        return goodsCost;
    }

    public void setGoodsCost(String goodsCost) {
        this.goodsCost = goodsCost;
    }

    public String getGoodsNum() {
        return goodsNum;
    }

    public void setGoodsNum(String goodsNum) {
        this.goodsNum = goodsNum;
    }

    public String getGoodsPrice() {
        return goodsPrice;
    }

    public void setGoodsPrice(String goodsPrice) {
        this.goodsPrice = goodsPrice;
    }
}

ProofPrint.java

public class ProofPrint implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    //终端号
    private String  terminalNo;
    //终端类型 pc/pos
    private String  terminalType;
    //操作员编号
    private String operatorNo;
    //操作员姓名
    private String operatorName;
    //交易日期
    private String  transDate;
    //银行卡号
    private String cardiId;
    //商铺名称
    private String storeName;
    //交易流水
    private String transactionRecord;
    //交易类型:消费/查询
    private String storeType;
    //批次号
    private String  batchNumber;
    //金额
    private String cost;
    //商品
    private ArrayList<Goods> goodsList;


    public String getTerminalNo() {
        return terminalNo;
    }

    public void setTerminalNo(String terminalNo) {
        this.terminalNo = terminalNo;
    }

    public String getTerminalType() {
        return terminalType;
    }

    public void setTerminalType(String terminalType) {
        this.terminalType = terminalType;
    }

    public String getOperatorNo() {
        return operatorNo;
    }

    public void setOperatorNo(String operatorNo) {
        this.operatorNo = operatorNo;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public String getTransDate() {
        return transDate;
    }

    public void setTransDate(String transDate) {
        this.transDate = transDate;
    }

    public String getCardiId() {
        return cardiId;
    }

    public void setCardiId(String cardiId) {
        this.cardiId = cardiId;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public String getTransactionRecord() {
        return transactionRecord;
    }

    public void setTransactionRecord(String transactionRecord) {
        this.transactionRecord = transactionRecord;
    }

    public String getStoreType() {
        return storeType;
    }

    public void setStoreType(String storeType) {
        this.storeType = storeType;
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    public String getCost() {
        return cost;
    }

    public void setCost(String cost) {
        this.cost = cost;
    }

    public ArrayList<Goods> getGoodsList() {
        return goodsList;
    }

    public void setGoodsList(ArrayList<Goods> goodsList) {
        this.goodsList = goodsList;
    }
}

Msg.java


public class Msg<T> implements Serializable{

    private static final long serialVersionUID = 1L;
    private String businessCode ;
    private T date;

    public String getBusinessCode() {
        return businessCode;
    }

    public T getDate() {
        return date;
    }

    public void setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
    }

    public void setDate(T date) {
        this.date = date;
    }
}

R_msg.java

public class R_msg implements Serializable{

    private String errCode;//错误码
    private String errMsg;//错误描述

    public String getErrCode() {
        return errCode;
    }

    public void setErrCode(String errCode) {
        this.errCode = errCode;
    }

    public String getErrMsg() {
        return errMsg;
    }

    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg;
    }
}

对象–转–>json字符串

Gson gson = new Gson();
String sendMsg = gson.toJson(msg);
 ArrayList<Goods> goodsList = new ArrayList<Goods>();
 Goods goods = new Goods();
 goods.setGoodsCost("1000");
 goods.setGoodsName("小米6");
 goods.setGoodsPrice("1000");
 goods.setGoodsNum("1");
 Goods goods1 = new Goods();
 goods1.setGoodsCost("2000");
 goods1.setGoodsName("小米7");
 goods1.setGoodsPrice("2000");
 goods1.setGoodsNum("1");
 goodsList.add(goods);
 goodsList.add(goods1);

ProofPrint print  = new ProofPrint();
 print.setBatchNumber("11111");
                            print.setCardiId("6227677594794868046");
print.setCost("1000");
print.setGoodsList(goodsList);
print.setOperatorName("张三");
print.setOperatorNo("0001");
print.setStoreName("小米旗舰店");
print.setStoreType("消费");
print.setTerminalNo("10001");
print.setTerminalType("pos");
print.setTransDate("2017-10-25 10:24:00");
                            print.setTransactionRecord("8364983749846");

Msg<ProofPrint> msg = new Msg<ProofPrint>();
msg.setBusinessCode("ZT001");
msg.setDate(print);
Gson gson = new Gson();
String sendMsg = gson.toJson(msg);

json字符串–转–>对象

//解决含泛型bean转换失败问题
 Type jsonType = new TypeToken<Msg<R_msg>>() {}.getType();
 Gson gson = new Gson();
 //msgJson 字符串
 Msg<R_msg> msg = gson.fromJson(msgJson, jsonType);
<think>好的,我现在需要帮助用户了解Gson库的使用说明、示例和文档。首先,我得回忆一下Gson的基本信息,它是Google开发的用于Java对象和JSON之间转换的库。用户可能想知道如何快速上手,所以应该从基本用法开始,比如序列化和反序列化的示例。 接下来,我需要确保按照用户的要求,行内数学表达式用$符号,但这里可能用不上数学公式,但要注意其他格式要求,比如独立代码块用```包裹,结构清晰。用户提到要生成相关问题,所以最后需要准备几个相关的问题。 然后,检查用户提供的引用内容。引用[1]和[3]介绍了Gson的基本功能和用途,引用[4]和[5]给出了具体的代码示例,引用[2]是一个方法签名,可能涉及反序列化的方法。需要将这些引用自然地整合到回答中,并在末尾添加引用标识。 另外,用户要求回答结构清晰,分步骤说明,所以可能需要分点讲解核心功能、使用方法、示例代码、自定义配置以及文档资源。每个部分都要有对应的代码示例,比如序列化和反序列化的代码,这样用户能更直观地理解。 还要注意用户可能关心的常见问题,比如如何处理复杂对象、自定义序列化策略、性能优化等,这些可以作为相关问题的部分,或者放在高级特性里。需要确保回答真实可靠,引用提供的资料,比如提到最佳实践和注意事项来自引用[3]。 最后,生成的相关问题应该覆盖用户可能进一步想了解的内容,比如Gson与其他库的比较、异常处理、复杂结构处理等。确保问题具体且有引导性,帮助用户深入探索。</think>### Gson库使用说明与示例 #### 一、核心功能 Gson库实现了Java对象与JSON数据之间的双向转换,支持泛型、集合、嵌套对象等复杂结构[^3]。核心功能包含: - **序列化**:将Java对象转为JSON字符串(`toJson()`) - **反序列化**:将JSON字符串转为Java对象(`fromJson()`) #### 二、基本使用方法 1. **添加依赖** ```xml <!-- Maven配置 --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> ``` 2. **创建Gson实例** ```java Gson gson = new Gson(); // 默认配置 ``` #### 三、示例代码 1. **序列化示例** ```java // 将Java对象转为JSON字符串 Student student = new Student("张三", 20); String json = gson.toJson(student); // 输出: {"name":"张三","age":20} ``` 2. **反序列化示例** ```java // 将JSON字符串转为Java对象 String jsonData = "{\"name\":\"李四\",\"age\":22}"; Student stu = gson.fromJson(jsonData, Student.class);[^4] ``` #### 四、高级配置 通过`GsonBuilder`实现自定义配置: ```java Gson gson = new GsonBuilder() .setPrettyPrinting() // 美化JSON输出 .serializeNulls() // 序列化null值 .setDateFormat("yyyy-MM-dd") // 日期格式 .create(); ``` #### 五、官方文档 - [Gson用户指南](https://github.com/google/gson/blob/master/UserGuide.md) - [API文档](https://www.javadoc.io/doc/com.google.code.gson/gson/latest/com.google.gson/com/google/gson/Gson.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值