fastjson的常用使用总结

Java基础 专栏收录该内容
50 篇文章 1 订阅

最近感觉对java中的json处理使用总结很乱,特别来总结一下.现在项目中使用的阿里巴巴的fastjson.


package cn.forp.pitaya.zdy.controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


/**
 * 类功能描述
 *
 * @author	gyoomi
 * @version	2018年2月25日 下午12:47:22
 */
//功能性接口
@FunctionalInterface
interface Task{
	String run(String name);
}

class Province{
	private Long id;
	private String name;
	private List<Town> townList = new ArrayList<>();
	private ZhiTown zhiTown;
	public Province() {
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List<Town> getTownList() {
		return townList;
	}
	public void setTownList(List<Town> townList) {
		this.townList = townList;
	}
	public ZhiTown getZhiTown() {
		return zhiTown;
	}
	public void setZhiTown(ZhiTown zhiTown) {
		this.zhiTown = zhiTown;
	}
}

class ZhiTown{
	private Long id;
	private String sName;
	public ZhiTown() {
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getsName() {
		return sName;
	}
	public void setsName(String sName) {
		this.sName = sName;
	}
}
class Town{
	
	private String id;
	private String name;
	public Town() {
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "Town [id=" + id + ", name=" + name + "]";
	}
}


public class Demo1 {
	public static void main(String[] args) {
		/**
		 *  1.将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
		 */
		/*JSONObject obj = JSON.parseObject("{\"name\":\"tom\"}");
		System.out.println(obj.get("name"));*/
		
		/**
		 *  2. 将Json文本数据转换为JavaBean数据! 
		 *  需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样
		 */
		/*Town town = JSON.parseObject("{\"id\":\"2038\",\"name\":\"克拉玛依\"}",Town.class);
		System.out.println(town.getId());
		System.out.println(town.getName());*/
		
		/**
		 *  3.将Map类型的数据转换为JsonString
		 */
		/*Map<Integer,Object> map = new HashMap<>();
		Town t1 = new Town();
		t1.setId("1090");
		t1.setName("和田");
		Town t2 = new Town();
		t2.setId("1390");
		t2.setName("石河子");
		ZhiTown zt = new ZhiTown();
		zt.setId(1234L);
		zt.setsName("喀什");
		Province p = new Province();
		p.setZhiTown(zt);
		p.setTownList(Arrays.asList(t1,t2));
		map.put(1, "val001");
		map.put(2, "val002");
		map.put(3, p);
		String jsonString = JSON.toJSONString(map);
		System.out.println(jsonString);*/
		
		 /** 
	      * 4.一个相对复杂的例子: 
	      * JSON文本数据: 
	      *      首先是JSONObject,转换为JSONArray; 
	      *      然后将JSONArray转换为JavaBean 
	      */
		/*String s = "{js:[{id:\"1001\",name:\"北京\"},{id:\"1002\",name:\"上海\"},{id:\"1003\",name:\"深圳\"}]}";
		JSONObject object = JSON.parseObject(s);
		Object jsonArray = object.get("js");
		//System.out.println(jsonArray);
		List<Town> list = JSON.parseArray(jsonArray+"",Town.class);
		System.out.println(list);*/
		
		/** 
	     * 5.将JSON文本转换为JavaBean的集合; 
	     * 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合 
	     */ 
		/*String s = "[{id:\"1009\",name:\"beijing\"},{id:\"1010\",name:\"shanghai\"},{id:\"1011\",name:\"shenzhen\"},{id:\"1012\",name:\"guangzhou\"}]";
		List<Town> list = JSON.parseArray(s,Town.class);
		System.out.println(list);*/
		
		
		 /** 
	     * 6.将JavaBean转换为Json格式的数据/Json文本 
	     * 用户数据的传递:例如http请求中数据请求
	     */
		Town town = new Town();
		town.setId("uuid10012");
		town.setName("chieoan");
		/*String s = JSON.toJSONString(town);
		System.out.println(s);*/  //此方式等同于下面的方式
		
		/*Object j = JSON.toJSON(town);
		System.out.println(j);*/
		
		/** 
	     * 7.将json数据转化为JSONArray: 
	     * 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合) 
	     * 获取JSONArray中的数据转换为String类型需要在外边加""; 
	     */ 
		String s = "[{id:\"1093\",name:\"newYork\"},{id:\"10890\",name:\"London\"},{id:\"12344\",name:\"Paris\"}]";
		JSONArray array = JSON.parseArray(s);
		//必须加上+"";不然会报出类型强转异常
		String str = array.get(0) + "";
		System.out.println(str);
		JSONObject obj = JSON.parseObject(array.get(1) + "");
		String ss = obj.get("name") + "";
		System.out.println(ss);
		
	}
}

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值