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 自动映射工具,真心强大!
Gson、FastJson、Jackson、json-lib对比总结
python 我定义了一个比较复杂的实体类,怎么把能把JSON字符串转换成这个类啊
请问怎样将有java.sql.Date属性的Bean转换成json字符串,再把json字符串转换回Bean请大侠指教!!!