Json转换Bean太过复杂?试试阿里巴巴的FastJSON

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Json转换Bean太过复杂?试试阿里巴巴的FastJSON相关的知识,希望对你有一定的参考价值。

阿里巴巴的JSON和BEAN的快速转化库FastJSON

FastJSON

阿里巴巴JSON库:fastJson,既能解析JSON为Bean对象,又能转换Bean对象为JSON字符串]()

为什么使用fastJson解析??

fastJson解析Json字符串时,使用起来比较简单,此外库基于Java语言开发,对JavaBean对象支持非常的好,对Scala语言支持不好,所以MessageBean使用Java语言定义的,没有使用Scala语言。

JSON转Bean

转换JSON为Bean对象:JSON.parseObject(jsonStr, classOf[StuBean])

示例代码
定义一个StudentBean

import java.util.Objects;

public class StuBean {

	private Integer id ;
	private String name ;

	public StuBean() {
	}

	public StuBean(Integer id, String name) {
		this.id = id;
		this.name = name;
	}

	public Integer getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public boolean equals(Object o) {
		if (this == o) return true;
		if (o == null || getClass() != o.getClass()) return false;
		StuBean stuBean = (StuBean) o;
		return Objects.equals(id, stuBean.id) &&
			Objects.equals(name, stuBean.name);
	}

	@Override
	public int hashCode() {
		return Objects.hash(id, name);
	}

	@Override
	public String toString() {
		return "StuBean{" +
			"id=" + id +
			", name='" + name + '\\'' +
			'}';
	}
}

使用Scala语言对JSON数据进行转化,转为Bean对象

import com.alibaba.fastjson.JSON

object FastJsonTest {
	
	
	def main(args: Array[String]): Unit = {
		
		// 定义json字符串
		val jsonStr: String =
			"""
			  |{
			  |  "id": 10001,
			  |  "name": "zhangsan"
			  |}
			  |""".stripMargin
		// JSON -> JavaBean
		val stuBean: StuBean = JSON.parseObject(jsonStr, classOf[StuBean])
		println(stuBean)
		
		
		// JavaBean转换为JSON字符串
		val stuJson: String = JSON.toJSONString(stuBean, true)
		println(stuJson)
	}
	
}

流式程序使用Scala语言编写,为什么MessageBean使用Java语言??

由于使用FastJson解析Json字符串,所以使用Java语言编写。由于Scala语言中CaseClass对FastJson支持不是很友好,有的时候,解析会出问题,无法完成解析操作。
FastJson库使用Java编写的,符合Java语言规范,但是不符合Scala与规范约束。

## Bean转JSON

JSON.toJSON*(‘放需要转的Bean或者map集合’, true)
注:*表示根据自身需求

以上是关于Json转换Bean太过复杂?试试阿里巴巴的FastJSON的主要内容,如果未能解决你的问题,请参考以下文章

干掉 BeanUtils!试试这款 Bean 自动映射工具,真心强大!

fastjson和jackson使用对比

Gson、FastJson、Jackson、json-lib对比总结

python 我定义了一个比较复杂的实体类,怎么把能把JSON字符串转换成这个类啊

Json与bean的相互转换

请问怎样将有java.sql.Date属性的Bean转换成json字符串,再把json字符串转换回Bean请大侠指教!!!