JSON初体验(三):FastJson解析
JSON解析之FastJson(阿里巴巴解析开源)
特点:
Fastjson是一个Java语言编写的高性能功能完善的JSON库,它采用的
是一种"假定有序快速匹配"的算法,把JSON Parse的性能提升到极致,
是目前Java语言中最快的JSON库。
1.将json格式{}转换为Java对象
API:
<T> T parseObject(String json,Class<T> classOfT);
步骤:
1.导入fastjson的jar包
2.JSON调用parseObject()方法,获取转换后的java对象
例如:
ShopInfo shopInfo=JSON.parseObject(json,ShopInfo.class);
代码:
ShopInfo的类:
public class ShopInfo {
private int id;
private String name;
private double price;
private String imagePath; public ShopInfo() {
} public ShopInfo(int id, String name, double price, String imagePath) {
this.id = id;
this.name = name;
this.price = price;
this.imagePath = imagePath;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
} public String getImagePath() {
return imagePath;
} public void setImagePath(String imagePath) {
this.imagePath = imagePath;
} @Override
public String toString() {
return "ShopInfo{" +
"id=" + id +
", name='" + name + '\'' +
", price=" + price +
", imagePath='" + imagePath + '\'' +
'}';
}
}
解析json数据:
public class One {
public static void main(String[] args) {
String json = "{\n" +
" \"id\":1,\n" +
" \"name\":\"豆瓣\",\n" +
" \"price\":12.3,\n" +
" \"imagePath\":\"http://www.douban.com\"\n" +
"}";
ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
System.out.println(shopInfo.toString());
}
}
2.将json格式的字符串[]转换为Java对象的List
API:
List<T> parseArray(String json,Class<T> classOft);
步骤:
1.导入fastjson的jar包
2.JSON调用parseArray()方法,获取转换后的java集合
例如:
List<ShopInfo> shopInfos = JSON.parseArray(json,ShopInfo.class);
代码:
public class Two {
public static void main(String[] args) {
String json = "[\n" +
" {\n" +
" \"id\":1,\n" +
" \"imagePath\":\"http://www.baidu.com\",\n" +
" \"name\":\"大虾1\",\n" +
" \"price\":12.3\n" +
" },\n" +
" {\n" +
" \"id\":2,\n" +
" \"imagePath\":\"http://www.douban.com\",\n" +
" \"name\":\"大虾2\",\n" +
" \"price\":12.5\n" +
" }\n" +
"]";
List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);
System.out.println(shopInfos);
}
}
3.将java对象转换为json字符串{}
API:
String toJSONString(Object object);
步骤:
1.导入fastjson的jar包
2.JSON调用toJSONString()方法,获取转换后的json数据
例如:
ShopInfo shopInfo = new ShopInfo(1,"鲍鱼",255.5,"baoyu");
String json = JSON.toJSONString(shopInfo);
代码:
public class Three {
public static void main(String[] args) {
ShopInfo shopInfo = new ShopInfo(1, "哔哩哔哩", 125.5, "www.blibli.com");
String json = JSON.toJSONString(shopInfo);
System.out.println(json);
}
}
4.将Java对象的List转换为json的字符串[]
API:
String toJSONString(Object object);
步骤:
1.导入fastjson的jar包
2.JSON调用toJSONString()方法,获取转换后的json数据
例如:
List<ShopInfo> shops = new ArrayList<>();
ShopInfo shopInfo1 = new ShopInfo(1, "哔哩哔哩", 255.5, "www.blibli.com");
ShopInfo shopInfo2 = new ShopInfo(1, "豆瓣", 255.5, "www.douban.com");
ShopInfo shopInfo3 = new ShopInfo(1, "知乎", 255.5, "www.zhihu.com");
shops.add(shopInfo1);
shops.add(shopInfo2);
shops.add(shopInfo3);
String json = JSON.toJSONString(shops);
代码:
public class Four {
public static void main(String[] args) {
ShopInfo shopInfo1 = new ShopInfo(1, "哔哩哔哩", 255.5, "www.blibli.com");
ShopInfo shopInfo2 = new ShopInfo(1, "豆瓣", 255.5, "www.douban.com");
ShopInfo shopInfo3 = new ShopInfo(1, "知乎", 255.5, "www.zhihu.com");
List<ShopInfo> list = new ArrayList<ShopInfo>();
list.add(shopInfo1);
list.add(shopInfo2);
list.add(shopInfo3);
String json = JSON.toJSONString(list);
System.out.println(json);
}
}
最后补一下fastjson在maven中的地址:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.32</version>
</dependency>
最后,再说一句,和本节内容无关的事:
翟哥,我错了,我真的错了,原谅我吧!
JSON初体验(三):FastJson解析的更多相关文章
- JSON初体验(二):Gson解析
今天,我们来介绍一下Gson的jar包的用法. JSON解析之Gson 特点:编码简介,谷歌官方推荐 数据之间的转换: 1.将json格式的字符串{}转换成为java对象 API: <T> ...
- JSON初体验(一):JsonObject解析
在学校的呆了一段时间,马上又要回去工作了,不说了,我现在介绍一下json相关的内容 1.JSON数据格式(总的来说,json就是一个字符串) 1.整体结构 String json1 = "{ ...
- SpringBoot初体验及原理解析
一.前言 上篇文章,我们聊到了SpringBoot得以实现的幕后推手,这次我们来用SpringBoot开始HelloWorld之旅.SpringBoot是Spring框架对“约定大于配置(Conv ...
- Ruby on rails初体验(三)
继体验一和体验二中的内容,此节将体验二中最开始的目标来实现,体验二中已经将部门添加的部分添加到了公司的show页面,剩下的部分是将部门列表也添加到公司的显示页面,整体思路和体验二中相同,但是还是会有点 ...
- Spring Cloud Alibaba 初体验(三) Nacos 与 Dubbo 集成
一.新建项目 新建项目,只放置接口,用于暴露 Dubbo 服务接口 public interface GreetingService { String greeting(); } 二.provider ...
- CentOS 初体验三: Yum 安装、卸载软件
一:Yum 简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指 ...
- $.extend({},defaults, options) --(初体验三)
1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数, ...
- Swift初体验(三)
/*******************************************************************************/ // 协议 protocol Des ...
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...
随机推荐
- ubuntu install chrome
sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ wget -q -O - h ...
- 在Windows 10上部署Apache PredictionIO开发环境
Windows在初研究人员的探索下,研究出了一套更为精简的环境配置,极大的缩短了开发时间与效率,在此总结以供后来者参阅. 1.部署环境的配置 Windows10 64 home IntelliJ ID ...
- selenium 截图加上时间戳
思路: 1 新建screenshot文件夹,不存在则创建该目录 2 在screenshot文件夹下新建当日日期文件夹,比如20190110:不存在则创建该目录 3 截图保存到当日文件夹,且截图文 ...
- (二)给Centos配置网络以及使用xshell远程连接Centos
好吧,我对网络协议以及ip配置知识的匮乏,让我在这里折腾了将近一天才搞定.可以说基本上网上遇到的问题我都遇到了.在这里,记下正确的步骤来给Centos配置网络.希望以后少走弯路. 首先我要说明的是,我 ...
- 2.为ADF应用添加安全性认证
1.打开ADF应用之后,选择Application==>Secure==>Configure ADF Security 2.在弹出框中选择ADF Authentication,一直Next ...
- luogu P4275 萃香的请柬
嘟嘟嘟 打表不难发现,序列的长度以及序列中1的个数都是斐波那契数列.因为第 i 秒1的个数由 i - 1的1和 i - 2的0变换而来,那么f[i] = f[i - 1] + f[i - 2].序列的 ...
- 说说application/x-www-form-urlencoded和application/json的区别
今天一位同事在于微信小程序开发人员那边在对接测试的时候,遇到了一个错误,安卓那边是以application/json作为请求体类型,而Java这边仍向往常那样没有多么大的变化,但是就是前台传输的数据为 ...
- eclipse 设置字体大小
步骤: 1.打开eclipse,在工具栏里找到 Window -> Perferences,打开如下图: 2.展开General -> Appearance -> Colors an ...
- 算法 - 给出一个字符串str,输出包含两个字符串str的最短字符串,如str为abca时,输出则为abcabca
今天碰到一个算法题觉得比较有意思,研究后自己实现了出来,代码比较简单,如发现什么问题请指正.思路和代码如下: 基本思路:从左开始取str的最大子字符串,判断子字符串是否为str的后缀,如果是则返回st ...
- UIScrollView的常用属性
UIScrollView的常用属性