Java基础笔记(fastJson)

查看文章:《FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换》

要记录一下 java 操作 Json 的api,每次用都记不牢,东找西找的,这里用的阿里的 fastjson,在 Maven 中导入:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.47</version>
</dependency>

这主要会用到 JSON 类,JSONObject 类和 JSONArray 类。后面二者都继承自 JSON 类。而且 JSONObject 实现了 Map<String,Object> 接口,而 JSONArray 实现了 List<Object> 接口

  • JSONObject 可通过调用形如 getString(String key) 的方法获取相应的键值
  • JSON.parseObject(String str):JSON格式字符串转换为 JSONObject 对象
  • JSON.parseArray(String str):JSON数组格式字符串转换为 JSONArray 对象
  • JSON.parseObject(String str, new TypeReference<T>() {}):JSON(或数组)格式的字符串转化为JavaBean
  • JSON.toJSONString(Object obj):JavaBean转换为JSON格式字符串(包括 JSONObject 对象)
  • JSON.toJSON(Object obj):JavaBean 转换为 JSONObject 对象(需要强制转换为 JSONObject 对象)

eg:

public class AboutAlibabaFastJson {

	static String jsonObjStr = "{\"name\":\"Seiei\",\"age\":\"19\"}";
	static String jsonArrayStr = "[{\"name\":\"Seiei\",\"age\":\"19\"},{\"name\":\"Taka\",\"age\":\"21\"}]";
	
	// JSON格式的字符串转换为 JSONObject 对象或 JSONArray 对象
	// JSONObject对象可以调用诸如 getString(String key) 的方法获取键值,查看源码发现是获取 Map对应的 object值,再进行强制转换
	static void strToJSONObjet() {
		// 转换为 JSONObject
		JSONObject jsonObject = JSON.parseObject(jsonObjStr);
		System.out.println(jsonObject.getString("name"));
		System.out.println(jsonObject.getInteger("age"));
		// JSONObject 转换为JSON 格式的字符串
		System.out.println(JSON.toJSONString(jsonObject));
		
		// 转换为 JSONArray
		JSONArray jsonArray = JSON.parseArray(jsonArrayStr);
		
		for (Object item: jsonArray) {
			JSONObject jsonObjectItem = (JSONObject) item;
			System.out.println(jsonObjectItem.getString("name"));
			System.out.println(jsonObjectItem.getInteger("age"));
		}
	}

	// JSON格式的字符串转化为 JavaBean
	// JSON数组格式字符串转化为 JavaBean
	static void strToJavaBean() {
		
		// JSON 格式的字符串转化为 JavaBean
		Student seiei = JSON.parseObject(jsonObjStr, new TypeReference<Student>() {});
		System.out.println("JSON 格式的字符串转化为 JavaBean");
		System.out.println(seiei.getName());
		
		// JSON数组格式字符串转化为 JavaBean数组
		//	不能使用 List,只能使用 ArrayList
		ArrayList<Student> list = JSON.parseObject(jsonArrayStr, new TypeReference<ArrayList<Student>>() {});
	
		for (Student item:list) {
			System.out.println(item.getName());
			System.out.println(item.getAge());
		}
	}
	
	// JavaBean 转换为JSON格式的字符串
	static void JavaBeanToStr() {
		Student seiei = new Student();
		seiei.setAge(18);
		seiei.setName("seiei");
		System.out.println(JSON.toJSONString(seiei));
	}
	
	// JavaBean 转换为JSONObject
	static void JavaBeanToJSONObject() {
		Student seiei = new Student();
		seiei.setAge(18);
		seiei.setName("seiei");
		JSONObject jsonObject = (JSONObject) JSON.toJSON(seiei);
		System.out.println(jsonObject.getString("name"));
	}
	
	public static void main(String[] args) {
//		AboutAlibabaFastJson.strToJSONObjet();
// 		AboutAlibabaFastJson.strToJavaBean();
// 		AboutAlibabaFastJson.JavaBeanToStr();
// 		AboutAlibabaFastJson.JavaBeanToJSONObject();
	}
}

class Student {
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	String name;
	Integer age;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值