Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。
下面是几个常用的 JSON 解析类库:
Gson: 谷歌开发的 JSON 库,功能十分全面。
FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
Jackson: 社区十分活跃且更新速度很快。
还有jackson,建议用这个
fj漏洞太多,详细用法可见:
https://blog.csdn.net/weixin_44747933/article/details/108301626?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166538766116782388048689%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166538766116782388048689&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-5-108301626-null-null.142v52control,201v3control_2&utm_term=%20jackson%20&spm=1018.2226.3001.4187
这时候搜用法,只需要搜对应的库
就会有各种各样博客介绍该库的用法
如果是中文库,还能找到官方文档
https://www.cnblogs.com/Marydon20170307/p/16045381.html
该文章汇聚了各种用法
一、json字符串
json采用map键值对的形式,又区别于map,map键值对采用等号关联。
(json字符串是前后端交互常采用的通信格式)
如:
“{ “employees”: [ {“firstName”: “Bill”, “lastName”:Gates" }, { “firstName”:“George”, “lastName”: “Bush”}, { “firstName”: “Thomas”, “lastName”: “Carter”}]}”
注意 json字符串只是一堆字符拼接没有换行,用双引号“”包围起来
前端json字符串解析,可以使用JSON.parse()和eval()。
JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。
二、json对象
如:
{
"firstName": "Bill",
"lastName": "Gates"
}
用大括号{}包围起来
三、json数组
本质就是数组,由json对象为元素构成的数组。
如:
[
{
"firstName": "Bill",
"lastName": "Gates"
},
{
"firstName": "George",
"lastName": "Bush"
},
{
"firstName": "Thomas",
"lastName": "Carter"
}
]
数据结构
jsonObject 使用花括号{}包含的键值对结构,Key必须是string类型(必须用双引号),value为任何基本类型或数据结构
jsonArray 使用中括号[]来起始,并用逗号,来分隔元素
一个花括号
代表是一个json对象
里面有很多数据对儿
但是未必一个json对象就刚好完美代表着java的一个类
只不过我们经常把一个对象转化成一个json对象而已。
但事实只是把该对象的各种属性转化成了json格式里的一对儿一对儿的数据,我们也完全可以在这个json里继续填一些数据。
List数组一般是不是转成的是jsonArray?
https://blog.csdn.net/u014255403/article/details/90379771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166533320316800186577703%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166533320316800186577703&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-90379771-null-null.142v52control,201v3control_2&utm_term=fastjson%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187
fastjson的介绍