我使用的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之后,打印结果正确。

net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案的更多相关文章

  1. Gson把json串转换成java实体对象

    Gson把json串转换成java实体对象的方法如下: 1.首先导入Gson的jar包,网上可以下载. java实体对象如下: public class Model { private double ...

  2. Java实体对象为什么要实现Serializable接口?

    前言 Java实体对象为什么一定要实现Serializable接口呢?在学JavaSE的时候有些实体对象不实现Serializable不是也没什么影响吗? 最近在学习mybatis的时候发现,老师写的 ...

  3. EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

    EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...

  4. java 实体对象转Map公共类

    java 实体对象转Map公共类 package org.kxtkx.portal.utils; import java.lang.reflect.Field; import java.util.Ha ...

  5. JSON-JSON字符串转换成JSON对象、JSON对象数组、java实体类以及保存到List列表中

    处理JSON字符串时,一直出错,写个样例后发现原来是没有弄清楚数据的格式问题. 实现的是 JSONString 转换成java对象 或是 list列表 实例类 News package lyx.ent ...

  6. Thrift生成的bean对象,用java内省操作时注意(自己笔记)

    项目需要,需要使用内省操作,将数据写入thrift生成的bean里,于是按常理getWritedMethod.invoke 结果发现set方法找不到,结果看了下thrift自己生成的bean里,set ...

  7. swagger restful api form映射实体对象和body映射实体对象配置

    实体Model @ModelAttribute一个具有如下三个作用: ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数 ...

  8. $.each遍历json对象(java将对象转化为json格式以及将json解析为普通对象)

    查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. var json = [ {"id":"1","tagName": ...

  9. spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

    1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...

随机推荐

  1. 关于cocos2d-x精灵加亮及变灰效果

    //根据现有CCSprite,变亮和变灰 static CCSprite* graylightWithCCSprite(CCSprite* oldSprite,bool isLight) { //CC ...

  2. UDP打洞和心跳包设计

    一.设备终端class DeviceClient { int deviceID; int IP; int port; char connectID[16]; time_t lastTime; stru ...

  3. MVVM架构的一次实践,重写iOS头条客户端

    前言: 一个iOS头条APP,使用MVVM架构实现,代码中有注释,封装了AFN网络请求,解媾代码,使用起来非常方便.用最经典的TableView展示,后续不断更新,喜欢就star或fork一下,有问题 ...

  4. hdu2058java

    The sum problem Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  5. Java基础知识强化之集合框架笔记48:产生10个1~20之间的随机数(要求:随机数不能重复) 简洁版

    1. 编写一个程序,获取10个1至20的随机数,要求随机数不能重复. 分析:  A: 创建随机数对象  B: 创建一个HashSet集合  C: 判断集合的长度是不是小于10    是:就创建一个随机 ...

  6. CentOS7上GitLab的使用

    生成SSH Keys 生成root账号的ssh key # ssh-keygen -t rsa -C "admin@example.com" 显示pub key的值 # cat ~ ...

  7. CentOS7系统下搭建Jenkins环境

    1. 安装JDK yum -y install java 2.安装Ant 添加JPackage源 yum -y install wget wget http://www.jpackage.org/jp ...

  8. Linq扩展方法之Aggregate 对序列应用累加器函数

    Linq扩展方法之Aggregate  对序列应用累加器函数; 函数模板:// 函数名:对序列应用累加器函数. // Parameters:参数要求 // source:要聚合的 System.Col ...

  9. 《你不常用的c#之三》:Action 之怪状

    转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6199891 例1:   public static void Main() { Li ...

  10. python基础知识一

    数 python中有4种类型的数--整数.长整数.浮点数和复数. --2是一个整数 --长整数不过是大一些的整数 --3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里52.3E-4表 ...