FastJson一些常见方法

什么是fastjson?

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

 

下面是FastJson常用的方法!

  Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

1.     把JSON文本parse为JSONObject或者JSONArray

      public static final Object parse(String text);

2.     把JSON文本parse成JSONObject   

       public static final JSONObject parseObject(String text);

3.     把JSON文本parse为JavaBean

        public static final <T> TparseObject(String text, Class<T> clazz);

4.     把JSON文本parse成JSONArray

        public staticfinal JSONArray parseArray(String text);

5.     把JSON文本parse成JavaBean集合

        public staticfinal <T> List<T> parseArray(String text, Class<T> clazz);

6.     将JavaBean序列化为JSON文本

        public static final String toJSONString(Object object);

7.     将JavaBean序列化为带格式的JSON文本

     public static final String toJSONString(Object object, boolean prettyFormat);

8.     将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)

        public staticfinal Object toJSON(Object javaObject);

 更多详细内容请访问:http://www.w3cschool.cn/fastjson/fastjson-quickstart.html


package com.max.test.alibaba.json;

public class Area {
	private String id;
	private String city;

	public Area(String id, String city) {
		this.id = id;
		this.city = city;
	}

	public Area() {
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}
}


package com.max.test.alibaba.json;

import java.util.ArrayList;

public class Group {

	private String id;

	private String name;

	private List<User> list = new ArrayList<User>();

	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;
	}

	public List<User> getList() {
		return list;
	}

	public void setList(List<User> list) {
		this.list = list;
	}

}



package com.max.test.alibaba.json;

public class User {

	private String id;
	private String name;

	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;
	}

}

package com.max.test.alibaba.json;

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

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

/**
 * @author Max
 */
public class FastJsonDemo {

	/**
	 * 
	 * <p>
	 * <b>方法描述:将Json文本数据信息转换为JsonObject对象</b>
	 * </p>
	 */
	private static void jsonToJsonObject() {
		String s = "{\"name\":\"Max\"}";
		JSONObject object = JSON.parseObject(s);
		System.out.println(object.get("name"));
	}

	/**
	 * 将Json文本数据转换为JavaBean数据! 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!!
	 */
	/**
	 * 
	 * <p>
	 * <b>方法描述:将Json文本数据转换为JavaBean数据</b></br>
	 * <b>备注:Json文本信息中的键的名称必须和JavaBean中的字段名称一致,键值中没有的,在JavaBean中就显示为null</b>
	 * </p>
	 */
	private static void jsonToBean() {
		String s = "{\"id\":\"0371\",\"city\":\"郑州\"}";
		Area area = JSON.parseObject(s, Area.class);
		System.out.println(area.getId());
		System.out.println(area.getCity());
	}

	/**
	 * 
	 * <p>
	 * <b>方法描述:将Map类型的数据转换为JsonString</b>
	 * </p>
	 */
	private static void MapToJson() {
		Group group = new Group();
		group.setId("1");
		group.setName("group");

		User user1 = new User();
		user1.setId("2");
		user1.setName("user1");

		User user2 = new User();
		user2.setId("3");
		user2.setName("user2");

		group.getList().add(user1);
		group.getList().add(user2);

		Map<Integer, Object> map = new HashMap<Integer, Object>();
		map.put(1, "Map.1");
		map.put(2, "Map.2");
		map.put(3, group.getList());

		String jsonString = JSON.toJSONString(map);
		System.out.println(jsonString);

	}

	/**
	 * 
	 * <p>
	 * <b>方法描述:JSON文本数据 >> JSONObject >> JSONArray >> JavaBean</b>
	 * </p>
	 */
	private static void JsonToBean() {
		String s = "{citys:[{id:\"1100001\",\"city\":\"北京市\"},{id:\"1100002\",\"city\":\"天津市\"}"
				+ ",{id:\"1100003\",\"city\":\"南京市\"},{id:\"1100004\",\"city\":\"上海市\"},"
				+ "{id:\"1100004\",\"city\":\"武汉市\"}," + "{id:\"1100005\",\"city\":\"郑州市\"},"
				+ "{id:\"1100006\",\"city\":\"洛阳市\"},{id:\"1100007\",\"city\":\"开封市\"}]}";

		JSONObject object = JSON.parseObject(s);
		Object jsonArray = object.get("citys");
		System.out.println(jsonArray);
		List<Area> list = JSON.parseArray(jsonArray + "", Area.class);
		for (Area area : list) {
			System.out.println(area.getCity());
		}
	}

	/**
	 * 
	 * <p>
	 * <b>方法描述:将json数据转化为JSONArray</b>
	 * </p>
	 */
	private static void jsonToJSONArray() {
		String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
		JSONArray array = JSON.parseArray(s);
		String str = array.get(1).toString();
		System.out.println(array.get(0));
		JSONObject object = JSON.parseObject(str);
		System.out.println(object.get("id"));
	}

	/**
	 * 
	 * <p>
	 * <b>方法描述:将JavaBean转换为JSON对象</b>
	 * </p>
	 */
	private static void beanToJSONObject() {
		Area area = new Area("0379", "洛阳");
		JSONObject json = (JSONObject) JSON.toJSON(area);
		System.out.println(json.get("id"));
	}

	/**
	 * <p>
	 * <b>方法描述:将JSON文本转换为List集合</b>方法的功能描述
	 * </p>
	 */
	private static void jsonToList() {
		String jsonStr = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
		List<Area> list = JSON.parseArray(jsonStr, Area.class);
		for (Area area : list) {
			System.out.println(area.getCity());
		}
	}

	/**
	 * 
	 * <p>
	 * <b>方法描述:一个复杂的Object到Json</b>
	 * </p>
	 */
	private static void BeanToJson() {
		Group group = new Group();
		group.setId("1");
		group.setName("group");

		User user1 = new User();
		user1.setId("2");
		user1.setName("user1");

		User user2 = new User();
		user2.setId("3");
		user2.setName("user2");

		group.getList().add(user1);
		group.getList().add(user2);

		String jsonString = JSON.toJSONString(group);
		System.out.println(jsonString);
	}

	public static void main(String[] args) {

		jsonToJsonObject();
		jsonToBean();
		jsonToJSONArray();
		jsonToList();
		beanToJSONObject();
		JsonToBean();
		BeanToJson();
		MapToJson();
	}

}




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值