扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
2.依赖Gson是Google提供的处理JSON数据的Java类库,主要用于转换Java对象和JSON对象。
创新互联公司主要从事成都网站设计、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务通州,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
com.google.code.gson gson2.8.5
3. 解析JSON对象利用Gson将复杂的JSON数据转化成Java对象。
先创建一个java对象,记得导入lombok的依赖
import lombok.Data;
@Data
public class BookModel {
private String id;
private String language;
private String edition;
private String author;
}
在使用Gson解析数据时,需要对其实例化,具体操作方式有两种。
public static void main(String[] args) {
final Gson gson = new Gson(); //实例化
final Gson gson1 = new GsonBuilder().create(); //实例化二
}
在实例化Gson之后,可以使用Gson类中提供的方法将JSON字符串转化成指定的Java对象
案例
public static void main(String[] args) {
//json对象
String json = "{\n" +
" \"id\":1,\n" +
" \"language\":\"java\",\n" +
" \"edition\":\"one\",\n" +
" \"author\":\"张三\"\n" +
"}";
Gson gson = new Gson();
//创建java对象
BookModel bookModel = gson.fromJson(json, BookModel.class);
//输出数据
System.out.println(bookModel.getId()+"\t"+bookModel.getLanguage());
}
4.解析JSON数组使用Gson解析JSON数组时,需要使用Gson类中提供的方法将JSON数组转化成指定类型的集合,方法如下:
该方法的输入参数类型为String和Type。其中,引入Type类型是为了支持对泛型的操作。在Gson包中,可以使用TypeToken类来创建Type对象。
public static void main(String[] args) {
//json对象
String json = "[\n" +
" {\n" +
" \"id\":1,\n" +
" \"language\":\"java\",\n" +
" \"edition\":\"one\",\n" +
" \"author\":\"张三\"\n" +
" },\n" +
" {\n" +
" \"id\":2,\n" +
" \"language\":\"C++\",\n" +
" \"edition\":\"two\",\n" +
" \"author\":\"李四\"\n" +
" }\n" +
"]";
Gson gson = new Gson();
//TypeToken操作 ,可支持类型包括泛型
final Type listMl = new TypeToken>(){}.getType();
//转换成集合
ListfromJson = gson.fromJson(json, listMl);
for (BookModel bookModel : fromJson) {
System.out.println(bookModel.getId()+"\t"+bookModel.getLanguage());
}
}
5.解析复杂嵌套式的JSON数据我们再创建一个java实体,之前的实体不要删了
@Data
class BookSummaryModel{
private String goodRateShow;
private String poorRateShow;
private String poorCountStr;
private Listbook;
}
案例
public static void main(String[] args) {
//json对象
String json = "{\n" +
" \n" +
" \"goodRateShow\":99,\n" +
" \"poorRateShow\":\"123\",\n" +
" \"poorCountStr\":\"500\",\n" +
" \n" +
" \n" +
"\"book\":\n" +
" [ {\n" +
" \"id\":2,\n" +
" \"language\":\"C++\",\n" +
" \"edition\":\"two\",\n" +
" \"author\":\"李四\"\n" +
" },{\n" +
" \"id\":1,\n" +
" \"language\":\"java\",\n" +
" \"edition\":\"one\",\n" +
" \"author\":\"张三\"\n" +
" }\n" +
"]\n" +
"}\n" +
"\n";
final Gson gson = new Gson();
final BookSummaryModel bookSummaryModel = gson.fromJson(json, BookSummaryModel.class);
//从对象中获取集合
final ListmodelList = bookSummaryModel.getBook();
for (BookModel bookModel : modelList) {
System.out.println(bookModel.getId()+"\t"+bookModel.getLanguage());
}
}
另外,Gson还提供了其他JSON处理的方法,如toJson()。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流