Json解析问题—数组用Gson反序列化为List双引号消失

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 现在的目的是这样的,我想从一串Object类型的字符串,转化成对应的实体类对象。简单来说就是把这个字符串给一个个独立分开。我先写出实体类对象和Json的数据,看完再开始解析。

现在的目的是这样的,我想从一串Object类型的字符串,转化成对应的实体类对象。


简单来说就是把这个字符串给一个个独立分开。


我先写出实体类对象和Json的数据,看完再开始解析。


实体类对象

package com.yyt.accountbooks.db.model;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
/**
 * @ projectName:   AccountBooks
 * @ packageName:   com.yyt.accountbooks.model
 * @ fileName:      BillModel
 * @ author:        zheng
 * @ createTime:    2023/1/11 17:32
 * @ describe:      账本表对象
 */
@Entity(tableName = "bills")
public class BillModel {
    /**
     * balance : 0.0
     * createTime : 1660880757000
     * id : 2
     * income : 0.0
     * name : 账本一
     * params : {}
     * pay : 0.0
     * remark : 账本备注
     * uid : 12
     */
    @PrimaryKey
    private int id;
    private double balance;
    private long createTime;
    private double income;
    private String name;
    private double pay;
    private String remark;
    private int uid;
    public double getBalance() {
        return balance;
    }
    public void setBalance(double balance) {
        this.balance = balance;
    }
    public long getCreateTime() {
        return createTime;
    }
    public void setCreateTime(long createTime) {
        this.createTime = createTime;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public double getIncome() {
        return income;
    }
    public void setIncome(double income) {
        this.income = income;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPay() {
        return pay;
    }
    public void setPay(double pay) {
        this.pay = pay;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    @Override
    public String toString() {
        return "BillModel{" +
                "balance=" + balance +
                ", createTime=" + createTime +
                ", id=" + id +
                ", income=" + income +
                ", name='" + name + '\'' +
                ", pay=" + pay +
                ", remark='" + remark + '\'' +
                ", uid=" + uid +
                '}';
    }
}


Json数据


因为getData()的类型是Object的,获得的是data后面部份的数组,一共有13个数组对象


string:{"code":0,"data":[{"balance":0.00,"createTime":1660880757000,"id":2,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本备注","uid":12},
{"balance":0.00,"createTime":1673076697000,"id":4,"income":0.00,"name":"pppppp","params":{},"pay":0.00,"remark":"pppppp","uid":12},
{"balance":0.00,"createTime":1673077667000,"id":5,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673077687000,"id":6,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673077696000,"id":7,"income":0.00,"name":"坎坎坷坷看看","params":{},"pay":0.00,"remark":"坎坎坷坷看看","uid":12},
{"balance":0.00,"createTime":1673079793000,"id":8,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673080112000,"id":9,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673080305000,"id":10,"income":0.00,"name":"哈哈哈哈哈那就","params":{},"pay":0.00,"remark":"哈哈哈哈哈那就","uid":12},
{"balance":0.00,"createTime":1673080319000,"id":11,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673080812000,"id":12,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673082156000,"id":13,"income":0.00,"name":"账本一","params":{},"pay":0.00,"remark":"账本一","uid":12},
{"balance":0.00,"createTime":1673086473000,"id":14,"income":0.00,"name":"用英语","params":{},"pay":0.00,"remark":"探讨探讨","uid":12},
{"balance":0.00,"createTime":1673088234000,"id":15,"income":0.00,"name":"滚滚滚","params":{},"pay":0.00,"remark":"","uid":12}]}


Gson库解析


错误思路1


直接把Object类型的Json数据直接反序列化为实体类的数组对象。

BillModel[] billModels =gson.fromJson((responseModel.getData().toString())
                                        ,BillModel[].class);


解析直接错误,解都解不出来.....


至于为什么?


应该是Object类型的数据直接toString不行。

目录
相关文章
|
1月前
|
SQL 存储 JSON
SQL,解析 json
SQL,解析 json
67 8
|
14天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
226 7
|
3月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
2月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
220 2
|
2月前
|
JSON 前端开发 JavaScript
解析JSON文件
解析JSON文件
122 9
|
1月前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:
|
2月前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
166 0
|
JSON Java 数据格式

推荐镜像

更多