fastJson

一、简介

    Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

二、特点

    1、高性能(速度最快

    2、功能强大

    3、无依赖

    4、开源(Apache License 2.0

三、实例

    1、demo

       

package com.cxhd.nmsp.util;

import java.util.ArrayList;
import java.util.Date;
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;

/**
 * fastJson实例
 * 
 * @author liyulin
 * @version 1.0 2015年8月26日 下午2:13:48
 */
public class FastJsonDemo {
	public static void main(String[] args) {
		parseObject();
		parseMap();
		parseList();
		
		fromObject();
		fromMap();
		fromList();
	}
	
	/**
	 * 字符串转Object对象
	 */
	public static void parseObject(){
		String jsonObject = "{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"}";
		Login login = JSON.parseObject(jsonObject, Login.class);
		
		System.out.println("字符串转对象(Object)==>"+login.getUsername()+":"+login.getPassword()+"\t"+login.getLoginDate());
	}
	
	/**
	 * 字符串转Map对象
	 */
	public static void parseMap(){
		String jsonObject = "{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"}";
		Map<String, Object> login = JSON.parseObject(jsonObject, new TypeReference<Map<String, Object>>() {});
		
		System.out.println("字符串转对象(Map)==>"+login.get("username")+":"+login.get("password")+"\t"+login.get("loginDate"));
	}
	
	/**
	 * 字符串转List对象 
	 */
	public static void parseList(){
		StringBuilder jsonList = new StringBuilder();
		jsonList.append("[");
		jsonList.append("{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"},");
		jsonList.append("{\"username\":\"admin\",\"password\":\"123456\",\"loginDate\":\"2015-08-26 10:22:23\"}");
		jsonList.append("]");
		List<Login> logins = JSON.parseArray(jsonList.toString(), Login.class);
		
		System.out.println("\n字符串转对象(List)==>");
		for(Login login:logins){
			System.out.println(login.getUsername()+":"+login.getPassword()+"\t"+login.getLoginDate());
		}
	}
	
	/**
	 * Object对象转字符串
	 */
	public static void fromObject(){
		Login login = new Login();
		login.setUsername("admin");
		login.setPassword("123456");
		login.setLoginDate(new Date());
		
		String json = JSON.toJSONStringWithDateFormat(login, "yyyy-MM-dd hh:mm:ss", SerializerFeature.WriteDateUseDateFormat);
		System.out.println("\n对象(Object)转字符串==>"+json);
	}
	
	
	/**
	 * Map对象转字符串
	 */
	public static void fromMap(){
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("username", "admin");
		map.put("password", "123456");
		map.put("loginDate", new Date());
		
		String json = JSON.toJSONStringWithDateFormat(map, "yyyy-MM-dd hh:mm:ss", SerializerFeature.WriteDateUseDateFormat);
		System.out.println("\n对象(Map)转字符串==>"+json);
	}
	
	/**
	 * List对象转字符串
	 */
	public static void fromList(){
		List<Login> logins = new ArrayList<Login>();
		for(int i=0; i<4; i++){
			Login login = new Login();
			login.setUsername("admin");
			login.setPassword("123456");
			login.setLoginDate(new Date());
			
			logins.add(login);
		}
		String json = JSON.toJSONStringWithDateFormat(logins, "yyyy-MM-dd hh:mm:ss", SerializerFeature.WriteDateUseDateFormat);
		System.out.println("\n对象(List)转字符串==>"+json);
	}
}

    2、Login.java

       

public class Login{
	private String username;
	private String password;
	private Date loginDate;
	
	public String getUsername() {
		return username;
	}
	
	public void setUsername(String username) {
		this.username = username;
	}
	
	public String getPassword() {
		return password;
	}
	
	public void setPassword(String password) {
		this.password = password;
	}

	public Date getLoginDate() {
		return loginDate;
	}

	public void setLoginDate(Date loginDate) {
		this.loginDate = loginDate;
	}
}

FastjsonFastjson2都是JSON库,用于处理JSON格式的数据。 Fastjson2是Fastjson项目的重要升级,旨在为未来十年提供高性能的JSON库。相比于原来的FastjsonFastjson2在性能上有了很大的提升,并且更加安全。它完全删除了autoType白名单,提升了安全性。 在使用上,导入Fastjson2的依赖后,与原来的Fastjson在代码上基本相同。唯一的区别是在Fastjson2中,将`jsonArray.toJavaList`方法转变为`jsonArray.toList`。 总结来说,FastjsonFastjson2都是用于处理JSON数据的库,但Fastjson2是Fastjson的升级版本,提供了更高的性能和更好的安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [fastjson2 介绍及使用](https://blog.csdn.net/qq_33697094/article/details/128114939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Fastjson2你开始使用了吗?来看看源码解析](https://blog.csdn.net/chenxuyuana/article/details/125581066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值