fastjson.jar

package com.apt.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.apt.model.TBTEntity; import org.json.JSONObject; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; /**
* Created by Administrator on 2017/4/14.
*/ public class JsonUtil {
private final static String tag="JsonUtil";
/**
* 反序列化一个实体
* @param jsonString {"Address":"北京市通州区科创六街","BaiDuLat":39.814426895001,"BaiDuLng":116.55877636322,"CellId":41776,"Lac":4388,"Lat":39.808475,"Lng":116.552281,"MNC":"0"}
* @param clazz CellInfo.class
* @param <T>
* @return
*/
public static <T> Object parseObject(String jsonString,Class<T> clazz){
try{
if(jsonString==null||jsonString.equals("")){
return null;
}
return JSON.parseObject(jsonString, clazz);
}
catch(Exception ex){
LogUtil.WriteError(ex,tag+"->toBean()");
return null;
}
} /**
* 反序列化一个泛型集合
* @param json
* @return
*/
public static <T>List<T> parseArray(String json,Class<T> clazz){
List<T> list=new ArrayList<T>();
try{
list = JSON.parseArray(json, clazz);
}
catch(Exception ex){
LogUtil.WriteError(ex,tag+"->parseArray()");
}
return list;
}
/**
* 反序列化一个具体集合
* @param json
* @return
*/
public static List<TBTEntity> getListTBTEntity(String json){
List<TBTEntity> list=new ArrayList<TBTEntity>();
try{
list = JSON.parseArray(json, TBTEntity.class);
}
catch(Exception ex){
LogUtil.WriteError(ex,tag+"->getListTBTEntity()");
}
return list;
} public static String toJSONString(Object clazz){
String json="";
try{
json = JSON.toJSONString(clazz,filter);
}
catch(Exception ex){
LogUtil.WriteError(ex,tag+"->toJSONString()");
}
json=formatJson(json);
return json;
} //解决序列化对对象为null的字段不序列化的问题
private static ValueFilter filter = new ValueFilter() {
@Override
public Object process(Object obj, String s, Object v) {
if(v==null)
return "";
return v;
}
}; //解决序列后首字母变成小写的问题
private static String formatJson(String orgJson) {
JSONObject jo = new JSONObject();
try {
JSONObject jsonObject = new JSONObject(orgJson);
Iterator iterator = jsonObject.keys(); while (iterator.hasNext()) {
String key = (String) iterator.next();
char chars[] = key.toCharArray();
if (key.length() > 1 && Character.isLowerCase(key.charAt(0))) {
chars[0] = Character.toUpperCase(chars[0]);
} Boolean bl = jsonObject.isNull(key);
if (bl) {
jo.put(new String(chars), null);
} else {
Object object = jsonObject.get(key);
try {
if (object instanceof Number) {
jo.put(new String(chars),
((Number) object).intValue());
} else {
jo.put(new String(chars), jsonObject.getString(key));
}
} catch (Exception e) {
jo.put(new String(chars), jsonObject.getString(key));
}
}
}
} catch (Exception ex) {
LogUtil.WriteError(ex,tag+"->formatJson()");
}
return jo.toString();
}
}

Java序列化,解决字段为null与序列化后首字母变小写问题的更多相关文章

  1. C#序列化json属性名首字母变成小写的解决方案

    原文:C#序列化json属性名首字母变成小写的解决方案 //接口返回自动转小写,容易造成前后端不一致,获取不到数据,切换成转驼峰(首字母大写)如Code/Result //在ConfigureServ ...

  2. Java中实现对集合中对象按中文首字母排序

    有一个person对象如下: public class Person { private String id;private String nam; } 一个list集合如下: List<Emp ...

  3. fastjson转换json字符串key的首字母小写变大写的解决办法

    https://blog.csdn.net/erbao_2014/article/details/53688934 问题描述在开发过程中,由于接口文档的描述,要求json字符串的key首字母为大写,而 ...

  4. 关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案

    首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值     SCHINESE_RADICAL_M ...

  5. 用Java将字符串的首字母转换大小写

    在项目开发的时候会需要统一字符串的格式,比如首字母要求统一大写或小写,那用Java如何实现这一功能?下面一起来学习学习. 话不多说,直接上代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 ...

  6. Java编程的逻辑 (62) - 神奇的序列化

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  7. JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码

    一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInpu ...

  8. Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  9. Java开发笔记(九十)对象序列化及其读写

    有些时候,开发者想把程序运行过程中的数据临时保存到文件,可是前面介绍的字符流和字节流,要么用来读写文本字符串,要么用来读写字节数组,并不能直接保存某个对象信息,因为对象里面包括成员属性和成员方法,单就 ...

随机推荐

  1. 如何设置 jenkins 任务执行的历史记录在左侧显示的格式?

    java -jar I:\CDC\jenkins\jenkins-cli.jar -s http://$ENV:MasterHost.us.oracle.com set-build-display-n ...

  2. centos7安装nodejs运行环境及卸载

    一.安装1.进入官网下载最新版本https://nodejs.org/en/ 选择下载后上传或直接使用wget下载 wget https://nodejs.org/dist/v8.11.2/node- ...

  3. js canvas游戏初级demo-上下左右移动

    大概流程就是监听状态变化擦除画布重绘 由于js监听时间变化的函数addEventListener只能达到每秒触发20次左右,也就是每秒20帧,看起来有点卡卡的 所以用定时器搞到每秒30帧 按上下左右键 ...

  4. 允许浏览器下载exe.config文件

    进入系统目录 %windir%\System32\inetsrv\config\ 编辑IIS配置文件 applicationHost.config 找到如下行 <requestFiltering ...

  5. thinkphp ckeditor与ckfinder

    thinkphp ckeditor与ckfinder 下载 ckeditor下载地址 ckfinder下载地址 整合 将ckeditor与findeditor下载完成后,放到public目录下,配置c ...

  6. 在visual studio code 中配置python以及解决中文乱码问题

    安装好 visual stuido code (下面简称 “ VSC ”)后,要想使用它运行调试 python 代码还需要做一些工作以解决下列问题: 搭建 python 环境 print 打印中文出现 ...

  7. os.path.dirname使用方法

    import os path1=os.path.abspath(__file__) print(path1)#当前文件的绝对路径 path2=os.path.dirname(os.path.abspa ...

  8. JavaScript 判断是PC端还是移动端

    function IsPC() {     var userAgentInfo = navigator.userAgent;     var Agents = ["Android" ...

  9. FB面经Prepare: Friends Recommendation

    有个getFriend() API, 让你推荐你的朋友的朋友做你的朋友,当然这个新朋友不能是你原来的老朋友 package fb; import java.util.*; public class R ...

  10. #WEB安全基础 : HTTP协议 | 0x16 HTTPS:证书,证书,全是证书

    现在想做点什么事都需要证书,要不就会让我们回忆起一个典故:滥竽充数 HTTPS使用了公开密钥加密,如何保证公开密钥就是真正的公开密钥呢?攻击者可能会替换公开密钥,这时候就需要验证,所以它采用了数字证书 ...