今天写东西,发现JSONObject.fromObject(),方法,会把value是null的字段,转为0或"",就自己写了一个方法,如果value是null就不转换

  

package com.moji.feedstreamapplet.util;

import java.lang.reflect.Field;

import com.moji.feedstreamapplet.bean.ExpandParam;

import net.sf.json.JSONObject;

public class JsonUtil {

    public static JSONObject jsonObjectFromBean(Object obj){
String className = obj.getClass().toString().split(" ")[1];
JSONObject jsonObj = new JSONObject();
try {
Class<?> c = Class.forName(className); Field[] fields = c.getDeclaredFields(); for(Field field : fields){
field.setAccessible(true);
Object val = field.get(obj);
if(val != null && !val.toString().isEmpty()){
jsonObj.put(field.getName(), val);
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} return jsonObj;
} public static void main(String[] args) {
ExpandParam ep = new ExpandParam();
ep.setDelete("1");
ep.setImageNumber(23);
ep.setIsCaputer(null);
JSONObject jsonObj = JsonUtil.jsonObjectFromBean(ep);
System.out.println(jsonObj);
}
}

另一个方法:

        JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() { @Override
public boolean apply(Object source, String name, Object value) {
if (value == null || "".equals(value)) {
return true;
}
return false;
}
});
SONObject.fromObject(param,config);

就是JasonConfig

json不转化值是null的字段的更多相关文章

  1. alibaba的JSON.toString会把值为null的字段去掉,谨记

    alibaba的JSON.toString会把值为null的字段去掉,谨记 Map<String,Object> map = new HashMap<>(); map.put( ...

  2. mybatis plus 更新值为null的字段

    转载请注明出处: 由于mybatis plus调用默认的更新操作方法时,不更新值为空,null或默认值等得属性字段,只更新值为非null,非空非默认值的属性字段. 以下为mybatis plus sa ...

  3. spring mvc 删除返回字符串中值为null的字段

    在spring的配置文件中进行一下配置: <bean class="org.springframework.web.servlet.mvc.method.annotation.Requ ...

  4. java对象json序列化时忽略值为null的属性

    环境: jdk: openjdk11 操作系统: windows 10教育版1903 目的: 如题,当一个对象里有些属性值为null 的不想参与json序列化时,可以添加如下注解 import com ...

  5. 从DB灌值到DataTable时,字段值为NULL时报错相关信息;

    报错信息: 1.  2.  3.  4.  5.  6.  解决方法: 1. Data Layer SQL 语句取数据时,把其列值有为null的字段用0.00替换,(ISNULL的用法): 2. #r ...

  6. 给JSON中put的value=null时,这对key=value会被隐藏掉。

    当我们在JSON里像这样json.put("key",null);put值进去的话,这个键值对就会被隐藏掉例如下面的例子: <pre name="code" ...

  7. MySQL 字段值为NULL,PHP用json转换,传给js,显示null

    这个问题出在php的json_encode环节,这个函数返回的json数据中会把空值写作null. 想通过在js端这样把null转为空字符串是不可以的: JSON.parse(JSON.stringi ...

  8. @JsonInclude注解,RestTemplate传输值为null的属性,利用FastJson将属性中有空值null的对象转化成Json字符串

    一个pojo类: import lombok.Data; @Data public class Friend { private String name; private int age; priva ...

  9. C# 实体类转json数据过滤掉字段为null的字段

    C# 实体类转json数据过滤掉字段为null的字段 语法如下: var jsonSetting = new JsonSerializerSettings {NullValueHandling = N ...

随机推荐

  1. bootstrap学习总结-04 常用标签2

    1 表格 Bootstrap为表格设计了漂亮的样式. 1)表格基本实例 任意 <table> 标签添加 .table. <table class="table"& ...

  2. JavaWeb学习总结-09 JDBC 学习和使用

    一 JDBC相关概念介绍 1.1 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  3. Ajax Post 类实例

    以前总是ajax请求是这样的 data:"a=1&b=2&c=3..." 而Controller也总是这样的 Action(int a,int b,int c) 很 ...

  4. ASP------如何使界面布局具有一致外观

    使用布局页或布局块的方法 转载: http://www.runoob.com/aspnet/webpages-layout.html

  5. Ztree的简单使用和后台交互的写法(一)

    一.引入ztree的头文件 <!-- 引入ztree/--> <script type="text/javascript" src="${pageCon ...

  6. Wget下载终极用法和15个详细的例子

    Wget下载终极用法和15个详细的例子 备注:wget  不支持https 下载,也没有相关https参数,当下载https的时候或以改用 axelWget是一种很好用的因特网下载工具,他具有的很多特 ...

  7. easyui tree获取直接子节点而不获取孙子节点方法

    $(node.target.nextElementSibling).children().each(function(index,ele){ if(checked){ $('#rcDimTreeRow ...

  8. JavaScript排序算法——选择排序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. JavaScript学习笔记——基本知识

    JavaScript学习的教程来自后盾网 1>JavaScript的放置和注释 1.输出工具 A.alert(); B.document.write(); C.prompt("&quo ...

  10. 字体投影(test-shadow)与框架投影(box-shadow)

    字体投影:text-shadow: 1px 1px 1px #ccc; 框架投影:box-shadow: 10px 10px 25px #ccc;