前言:
利用阿里巴巴的FastJson技术解析四种Json,将Json转化为Java,主要分为四种:将Json字符串转化为Java对象、将Json字符串转化为Java对象的List、将Java对象转化为Json字符串、将Java对象的List转化为json字符串。
其中本文关于Json数据参考「程序猿在广东」的原创文章,下面是链接。
原文网址:https://blog.csdn.net/qq_29269233/article/details/53352668
特点:Fastjson是用Java语言编写的高性能功能完善的JSON库。它采用了一种“假定有序、快速匹配”的算法,
把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。
下载网址:https://github.com/alibaba/fastjson
一:将Json字符串转化为Java对象
API:
T parseObject(String json, Class classOfT);
格式:
JSON.parseObject()
(1)获取json数据
String json ="{\n" +
"\t\"id\":2, \"name\":\"金鱼\", \n" +
"\t\"price\":12.3, \n" +
"\t\"imagePath\":\"http://blog.csdn.net/qq_29269233/L05_Server/images/f1.jpg\"\n" +
"}\n";
(2)解析json数据
ShopInfo shopInfo = JSON.parseObject(json,ShopInfo.class);
(3)显示json数据
tv_fast_orignal.setText(json);
tv_fast_last.setText(shopInfo.toString());
二:将Json字符串转化为Java对象的List
API:
ListT parseArray(String json, Class classOfT);
格式:
JSON.parseArray()
(1)获取json数据
String json = "[\n" +
" {\n" +
" \"id\": 1,\n" +
" \"imagePath\": \"http://blog.csdn.net/qq_29269233/f1.jpg\",\n" +
" \"name\": \"金鱼1\",\n" +
" \"price\": 12.3\n" +
" },\n" +
" {\n" +
" \"id\": 2,\n" +
" \"imagePath\": \"http://blog.csdn.net/qq_29269233/f2.jpg\",\n" +
" \"name\": \"金鱼2\",\n" +
" \"price\": 12.5\n" +
" }\n" +
"]";
(2)解析json数据
JSONArray jsonArray = JSON.parseArray(json);
(3)显示json数据
tv_fast_orignal.setText(json);
tv_fast_last.setText(jsonArray.toString());
三:将Java对象转化为Json字符串
API:
String toJSONString(Object object);
格式:
JSON.toJSONString()
(1)获取Java对象
ShopInfo shopInfo = new ShopInfo(1, "鸡蛋", 1.5, "egg");
(2)Java对象转化为Json数据
String toJSONString = JSON.toJSONString(shopInfo);
(3)显示数据
tv_fast_orignal.setText(shopInfo.toString());
tv_fast_last.setText(toJSONString);
四:将Java对象的List转化为json字符串
API:
String toJSONString(Object object);
格式:
JSON.parseArray()
(1)创建Java数组
List<ShopInfo> shopInfoList = new ArrayList<>();
ShopInfo egg = new ShopInfo(1,"鸡蛋",1.5,"egg");
ShopInfo fish = new ShopInfo(2,"鱼",20.0,"fish");
shopInfoList.add(egg);
shopInfoList.add(fish);
(2)Java对象转化为json字符串
String toJSONString = JSON.toJSONString(shopInfo);
(3)显示数据
tv_fast_orignal.setText(shopInfoList.toString());
tv_fast_last.setText(toJSONString);