FastJson的使用

fastjson生成和解析json数据

一、fastjson生成json数据

String
jsonStrng = JSON.toJSONString(object);

二、 fastjson
解析json字符串

1.
JavaBean

User user = JSON.parseObject(jsonString,
User.class);

2. List<JavaBean>

List<User> listPerson =JSON.parseArray(jsonString,

User.class);

3. List<String>

List<String> listString = JSON.parseArray(jsonString, String.class);

4. List<Map<String,Object>>

List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});

三、拓展

1)fastjson生成json数据时,导出空数据。

String jsonStr=JSON.toJSONString(userList,SerializerFeature.WriteMapNullValue);

2)fastjson解析json数据时需要将值为null的key也可以解析出来,就要用到fastjson的反射了。

List<Map<String,
Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});

下面的是测试代码,仅供参考。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class Test {

	public static void main(String[] args){
		List<Map<String,Object>> userList  =getUserList();
		String jsonStr=JSON.toJSONString(userList,features);
		System.out.println(jsonStr);
		List<Map<String, Object>> listMap = JSON.parseObject(jsonStr, new TypeReference<List<Map<String,Object>>>(){});

		for(Map<String, Object> map:listMap){
			System.out.println(JSON.toJSONString(map,features));
		}

	}

	public static SerializerFeature[] features=new SerializerFeature[]{
		SerializerFeature.WriteMapNullValue,
		SerializerFeature.WriteNullBooleanAsFalse,
		SerializerFeature.WriteNullListAsEmpty,
		SerializerFeature.WriteNullStringAsEmpty,
		SerializerFeature.WriteDateUseDateFormat
	};
	public static List<Map<String,Object>> getUserList(){
		List<Map<String,Object>> newList=new ArrayList<Map<String,Object>>();

		for(int i=0;i<5;i++){
			Map<String,Object> map=new HashMap<String,Object>();
			map.put("id", i);
			map.put("username","xxx"+i);
			map.put("sex","男"+i);
			map.put("age",null);
			map.put("dh",null);
			map.put("zz","ZZ"+i);
			newList.add(map);
		}
		return newList;
	}

}

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

时间: 2024-12-03 05:51:11

FastJson的使用的相关文章

利用fastjson解析json并通过js&amp;ajax实现页面的无跳转刷新

1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一个web项目,这是我的项目:我这里直接用servlet写的 注意导包,我这里到了很多无用的包,其实主要的包是下面几个: 这个三个包是必须的,其他都是开发基本web的常用包 3.创建一个domain: package com.keson.domain; import com.thoughtworks.

Android FastJson与不规范JSON引发的血案

去公司实习了,没多少时间更博客了,距离上一篇博客也有一个来月了.看标题,应该可以看出,这篇文章是讲一个坑,以及如何填坑. 坑是什么?有两个坑,其一是fastjson的bug,其二是不规范的json字符串.如何填坑,不要着急,后文详细说明. 首先,我们看一个json字符串 { "doubleParam": 4.875, "floatParam": 2.76, "extra": { "doubleParam": 12.23, &q

Android 利用fastjson进行json解析

package com.example.FastJson.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import java.util.List; import java.util.Map; /** * Created by chang on 14-10-3. */ public class jsonUtil { public static <T> T getObject(

FastJson使用示例

一,几个基本概念 ①JSONArray 相当于 JAVA中的List<Object>,如:['a','b','c'....] ②JSONObject相当于JAVA中的Map<String, Object>,如:{'1':'a', '2':'b'...} ③对于具有结构层次的JSON格式的数据,可以一层一层地来解析,可参考:这篇文章 二,当待解析的JSON文件很大时,可使用JSON Stream API,比如如下 List类型的数据在 F:\\test.txt 中,假设有上万条时..

fastjson null 值处理

偶然用到fastjson转换json 在前台用js解析竟然某些字段没有,曾经用过gson.联想到是不是相似gson默认将null值不显示了,找了下资料果真如此 直接上代码吧 import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; public class Test

对FastJson的封装Util

/** * FastJson常用帮助类 * @author huangxincheng * */ public class FastJsonUtil { private static final SerializeConfig CONFIG = new SerializeConfig(); private static final String FORMAT_TIME = "yyyy-MM-dd HH:mm:ss"; private static final String FORMAT

fastjson使用

简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson.并且还超越了google的二进制协议protocol buf. 支持标准 Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一. 功能强大 支持各种JDK类型.包括基本类型.JavaBean.Collection.Map.Enum.泛型等.支持循环引用 无依赖

Java的Json解析包FastJson使用

阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson:功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持Android:开源 (Apache 2.0) 源码地址:https://github.com/alibaba/fastj

[转]FastJSON通过SerializeFilter定制序列化

原文地址:https://github.com/alibaba/fastjson/wiki/SerializeFilter 简介 SerializeFilter是通过编程扩展的方式定制序列化.fastjson支持6种SerializeFilter,用于不同场景的定制序列化. PropertyPreFilter 根据PropertyName判断是否序列化 PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化 NameFilter 修改Key,如果需

将fastjson元素转化为String[]

在fastjson中如果JSONObject中添加了 String[] 类型的元素 例如 JSONObject jo = new JSONObject(); String[] array = {"1", "2"}; jo.put("array", array); 将JSONObject中String[]提取出来需要 (String[])(((JSONArray)jo.get("array")).toArray(new Stri