- 使用Gson框架解析
Demo展示:
// (4)将Java对象的List转换为json字符串[]
private void javaToJsonArrayByGson() {
// 1 获取或创建Java对象
List<ShopInfo> shops = new ArrayList<>();
ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia");
shops.add(baoyu);
shops.add(longxia);
// 2 生成JSON数据
Gson gson = new Gson();
String json = gson.toJson(shops);
}
// (3)将Java对象转换为json字符串{}
private void javaToJsonObjectByGson() {
// 1 获取或创建Java对象
ShopInfo shopInfo = new ShopInfo(1,"鲍鱼",250.0,"baoyu");
// 2 生成JSON数据
Gson gson = new Gson();
String json = gson.toJson(shopInfo);
}
// (2)将json格式的字符串[]转换为Java对象的List
private void jsonToJavaListByGson() {
// 1 获取或创建JSON数据
String json = "[\n" +
" {\n" +
" \"id\": 1,\n" +
" \"imagePath\": \"http://192.168.10.165:8080/f1.jpg\",\n" +
" \"name\": \"大虾1\",\n" +
" \"price\": 12.3\n" +
" },\n" +
" {\n" +
" \"id\": 2,\n" +
" \"imagePath\": \"http://192.168.10.165:8080/f2.jpg\",\n" +
" \"name\": \"大虾2\",\n" +
" \"price\": 12.5\n" +
" }\n" +
"]";
// 2 解析JSON数据
Gson gson = new Gson();
List<ShopInfo> shops = gson.fromJson(json, new TypeToken<List<ShopInfo>>() {
}.getType());
}
// (1)将json格式的字符串{}转换为Java对象
private void jsonToJavaObjectByGson() {
// 1 获取或创建JSON数据
String json = "{\n" +
"\t\"id\":2, \"name\":\"大虾\", \n" +
"\t\"price\":12.3, \n" +
"\t\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"\n" +
"}\n";
// 2 解析JSON数据
Gson gson = new Gson();
ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);
}
bean类:
package com.atguigu.android.json.bean;
/**
* Created by Administrator on 2016/8/27 0027.
*/
// 商店的实体类
public class ShopInfo {
private int id;
private String name;
private double price;
private String imagePath;
public ShopInfo(int id, String name, double price, String imagePath) {
this.id = id;
this.name = name;
this.price = price;
this.imagePath = imagePath;
}
public ShopInfo() {
}
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对象中的key的名称与java对象对应的类中的属性名要相同
- 使用FastJson框架解析
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。
Demo展示:
// (4)将Java对象的List转换为json字符串[]
private void javaToJsonArrayByFastJson() {
// 1 创建一个Java集合
List<ShopInfo> shops = new ArrayList<>();
ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia");
shops.add(baoyu);
shops.add(longxia);
// 2 生成JSON数据
String json = JSON.toJSONString(shops);
}
// (3)将Java对象转换为json字符串{}
private void javaToJsonObjectByFastJson() {
// 1 创建一个Java对象
ShopInfo shopInfo = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
// 2 生成JSON数据
String json = JSON.toJSONString(shopInfo);
}
// (2)将json格式的字符串[]转换为Java对象的List
private void jsonToJavaListByFastJson() {
// 1 获取或创建json数据
String json = "[\n" +
" {\n" +
" \"id\": 1,\n" +
" \"imagePath\": \"http://192.168.10.165:8080/f1.jpg\",\n" +
" \"name\": \"大虾1\",\n" +
" \"price\": 12.3\n" +
" },\n" +
" {\n" +
" \"id\": 2,\n" +
" \"imagePath\": \"http://192.168.10.165:8080/f2.jpg\",\n" +
" \"name\": \"大虾2\",\n" +
" \"price\": 12.5\n" +
" }\n" +
"]";
// 2 解析JSON数据
List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);
}
// (1)将json格式的字符串{}转换为Java对象
private void jsonToJavaObjectByFastJson() {
// 1 获取或创建json数据
String json = "{\n" +
"\t\"id\":2, \"name\":\"大虾\", \n" +
"\t\"price\":12.3, \n" +
"\t\"imagePath\":\"http://192.168.10.165:8080/L05_Server/images/f1.jpg\"\n" +
"}\n";
// 2 解析JSON数据
ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
}