博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案
阅读量:6420 次
发布时间:2019-06-23

本文共 1881 字,大约阅读时间需要 6 分钟。

我使用的net.sf.json是json-lib-2.4-jdk15.jar,把json对象转换为普通java实体对象时候有个问题,josn对象转换为java对象之后,json串里面的那几个小数点的值对应的java属性的值取不到。

json串如下所示:

{"Average":0.28,"Maximum":0.32,"Minimum":0.2,"instanceId":"i-426auf2hf","timestamp":1449938400000,"userId":"1467232540347717"}

java实体对象如下:

public class Model {    private double Average;    private double Maximum;    private double Minimum;    private String instanceId;    private long timestamp;    private String userId;    public double getAverage() {        return Average;    }    public void setAverage(double average) {        Average = average;    }    public double getMaximum() {        return Maximum;    }    public void setMaximum(double maximum) {        Maximum = maximum;    }    public double getMinimum() {        return Minimum;    }    public void setMinimum(double minimum) {        Minimum = minimum;    }    public String getInstanceId() {        return instanceId;    }    public void setInstanceId(String instanceId) {        this.instanceId = instanceId;    }    public long getTimestamp() {        return timestamp;    }    public void setTimestamp(long timestamp) {        this.timestamp = timestamp;    }    public String getUserId() {        return userId;    }    public void setUserId(String userId) {        this.userId = userId;    }}

转换代码如下:

JSONObject sfObject = JSONObject.fromObject(str);// 转换方法Model ecs = (Model) JSONObject.toBean(sfObject, Model.class);System.out.println(ecs.getAverage());

Average的值拿不到,所以输出的结果是:0.0,而不是0.28。

解决方案:

我放弃了json.lib,用google的Gson能够完美的解决。

Gson把json串转换成java实体对象的方法如下:

1.首页导入Gson的jar包,网上可以下载。

2. 实体类还是使用上面的实体类,转换代码如下所示:

String str = "{\"Average\":0.29,\"Maximum\":0.32,\"Minimum\":0.25,\"instanceId\":\"i-426auf2hf\",\"timestamp\":1449939900000,\"userId\":\"1467232540347717\"}";Model model = new Gson().fromJson(str, Model.class);System.out.println(model.getAverage());

使用Gson之后,打印结果正确。

转载地址:http://kplra.baihongyu.com/

你可能感兴趣的文章
上班第一天的BUG居然是chrome翻译功能导致的
查看>>
Android 用于校验集合参数的小封装
查看>>
iOS混合开发库(GICXMLLayout)七、JavaScript篇
查看>>
instrument 调试 无法指出问题代码 解决
查看>>
理解缓存
查看>>
im也去中心化?Startalk(星语)的去中心化设计之路
查看>>
BAT 经典算法笔试题 —— 磁盘多路归并排序
查看>>
一次完整的HTTP请求
查看>>
Nginx限制带宽
查看>>
All Web Application Attack Techniques
查看>>
归档日志ORA-19809: 超出了恢复文件数的限制
查看>>
精品德国软件 UltraShredder 文件粉碎机
查看>>
PANDAS 数据合并与重塑(join/merge篇)
查看>>
文件时间信息在测试中的应用
查看>>
Exception loading sessions from persistent storage (tomcat异常)
查看>>
直播疑难杂症排查(8)— 播放杂音、噪音、回声问题
查看>>
安装乌班图系统,并且演示有趣的linux命令,你还怕对linux无兴趣吗
查看>>
如何写gdb命令脚本
查看>>
Android ListView展示不同的布局
查看>>
iOS宏(自己使用,持续更新)
查看>>