比如要写个专门处理float类型的方法,然后注册到JSON配置器中,具体如下:

配置器代码如下:

import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.Locale; import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor; class FloatJsonValueProcessor implements JsonValueProcessor { public FloatJsonValueProcessor() { } /**
* 处理数组类型
*/
public Object processArrayValue(Object value, JsonConfig jsonConfig) { if (value instanceof float[]) { String[] obj = {}; float[] nums = (float[]) value; for (int i = 0; i < nums.length; i++) {
obj[i] = roundHalfUp(nums[i], 3);
} return obj;
} return value;
} /**
* 处理单个对象
*/
public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { if (value instanceof Float) {
return roundHalfUp((Float)value, 3);
} return value;
} /**
* 四舍五入。
*
* @param number 数值
* @return 舍入后的数值
* @see java.text.RoundingMode.HALF_UP
*/
public String roundHalfUp(double number, int frac) {
NumberFormat fmt = NumberFormat.getInstance(Locale.CHINA); fmt.setMaximumFractionDigits(frac);
fmt.setRoundingMode(RoundingMode.HALF_UP); return fmt.format(number);
}
}

然后在具体代码中注册处理器:

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Float.class, new FloatJsonValueProcessor()); float f = 0.1f;
JSONArray array = JSONArray.fromObject(f,jsonConfig);

自定义JSON配置器的更多相关文章

  1. 访问API的方式为:localhost/api/customers, 创建自定义JSON格式化器

    注意的是,访问API的方式为:localhost/api/customers,在实际中将要根据情况替换合适的端口,默认所有的WEB API都是通过/api根目录的方式访问的 创建自定义JSON格式化器 ...

  2. ASP.NET MVC4 json序列化器

    ASP.NET MVC4中调用WEB API的四个方法 2012年06月07日00:05 it168网站原创 作者:廖煜嵘 编辑:景保玉 我要评论(0) [IT168技术]当今的软件开发中,设计软件的 ...

  3. SpringBoot 默认json解析器详解和字段序列化自定义

    前言 在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理 Sp ...

  4. Nginx 高级配置-自定义json格式日志

    Nginx 高级配置-自定义json格式日志 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在大数据运维工作中,我们经常会使用flume,filebeat相关日志收集工具取收集日志 ...

  5. springmvc自定义的拦截器以及拦截器的配置

    一.自定义拦截器 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口. 二.HandlerIn ...

  6. Spring-security自定义配置器

    定义配置器 public final class MyFilterConfigurer<H extends HttpSecurityBuilder<H>> extends Se ...

  7. Dubbo自定义日志拦截器

    前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...

  8. 用ExpressionTree实现JSON解析器

    今年的春节与往年不同,对每个人来说都是刻骨铭心的.突入其来的新型冠状病毒使大家过上了“梦想”中的生活:吃了睡,睡了吃,还不用去公司上班,如今这样的生活就在我们面前,可一点都不踏实,只有不停的学习才能让 ...

  9. 详解Springboot中自定义SpringMVC配置

    详解Springboot中自定义SpringMVC配置 WebMvcConfigurer接口 ​ 这个接口可以自定义拦截器,例如跨域设置.类型转化器等等.可以说此接口为开发者提前想到了很多拦截层面的需 ...

随机推荐

  1. cookie 和 HttpSession

    保存会话数据的两种技术 Cookie Cookie 是客户端技术,程序把每个用户的数据以cookie的形式写给用户的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.web ...

  2. Oracle 安装安全补丁过程中出现的问题

    为Oracle安装安全补丁,首先在官网上下载相应版本的补丁. 根据官方文档的说明安装,但是在安装的过程中会出项各种各样的错误,这里仅仅把我遇到的记录下来,给大家提供参考. 首先按照官方文档安装. 在这 ...

  3. GUI编程笔记(java)10:GUI实现一级菜单

    1.首先:菜单组件 MenuBar,Menu,MenuItem              先创建菜单条,再创建菜单,每一个菜单中建立菜单项.              也可以菜单添加到菜单中,作为子菜 ...

  4. 版本控制-git的使用

    最近刚到公司实习,知道了版本控制,并略微会用了git的版本控制,下面就简单的记录一下,给健忘的自己日后回顾~ 师傅教我的是命令行的使用,所以暂时只说命令行的方法, 1.首先进入CLone到本地的那个本 ...

  5. BZOJ 1044 木棍分割

    二分+dp. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...

  6. burp

    http://www.2cto.com/Article/201406/310929.html

  7. 服务器端PHP多进程编程

    待更新 版权声明:本文为博主原创文章,未经博主允许不得转载.

  8. sharepoint中的YesNo字段

    sharepoint中的YesNo字段实际上是一个Boolean字段,性格有点特别,如果IsShow是一个YesNo字段,使用caml查询的时候值为”1“(Yes)”0“(No),Item[IsSho ...

  9. [日历] C#修改CNDate日历帮助类 (转载)

    点击下载 CNDate.rar 主要功能如下 .传回公历y年m月的总天数 .根据日期值获得周一的日期 .获取农历 #region 私有方法 private static long[] lunarInf ...

  10. 黑马程序员- IO(Input- Output)(一)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- API包: Java.io.* 缘来: java通过操作数据对象是通过流的方式来创建的 作用: ...