JSON在Java中的相互转换示例详解
什么是JSON?
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这样就使得JSON成为理想的数据交换格式。
数据交换格式,是指客户端和服务器之间通信,传递数据时,数据使用的格式是json
JSON在java中的使用
json在java中操作,需要用到歌提供的gson工具类
publicclassGsonTest{
@Test
publicvoidtest(){
Sceneryscenery=newScenery(1,"天坛公园","北京");
//Javabean转换成json字符串
//创建谷歌的gson提供的工具类
Gsongson=newGson();
//使用toJson()方法转换
Stringjson=gson.toJson(scenery);
System.out.println(json);
//结果:{"id":1,"name":"天坛公园","address":"北京"}
//使用formJson方法将json字符串转换为Javabean对象
ScenerysceneryBean=gson.fromJson(json,Scenery.class);
System.out.println(sceneryBean);
//结果:Scenery{id=1,name='天坛公园',address='北京'}
}
}
List集合和json字符串的互转
@Test
publicvoidtestList(){
//List和json的互转
Listlist=newArrayList<>();
list.add(newScenery(1,"野人谷风景区","湖北"));
list.add(newScenery(2,"绿野山庄","浙江"));
list.add(newScenery(3,"天坛公园","北京"));
//创建gson工具类
Gsongson=newGson();
//使用toJson()方法把list集合转换为json字符串
Stringjson=gson.toJson(list);
System.out.println(json);
//结果:[{"id":1,"name":"野人谷风景区","address":"湖北"},{"id":2,"name":"绿野山庄","address":"浙江"},{"id":3,"name":"天坛公园","address":"北京"}]
//fromJson把json字符串转换回list集合
//toJson()是把对象转换为json字符串
//fromJson是把json字符串转换回java对象
//如果是转回一个JavaBean.则第二个参数是转换的javaBean的具体类型
//如果是转回一个集合.则第二个参数是type类型
//使用fromJson()方法将json字符串转换为list集合
//使用匿名内部类
Listlist1=gson.fromJson(json,newTypeToken>(){}.getType());
System.out.println(list1);
//结果:[Scenery{id=1,name='野人谷风景区',address='湖北'},Scenery{id=2,name='绿野山庄',address='浙江'},Scenery{id=3,name='天坛公园',address='北京'}]
//在转成javaBean对象
Sceneryscenery=list1.get(0);
System.out.println(scenery);
//结果:Scenery{id=1,name='野人谷风景区',address='湖北'}
}
map和json的互转
@Test
publicvoidtestMap(){
MapsceneryMap=newHashMap<>();
sceneryMap.put("CN10121010103A",newScenery(1,"杭州极地海洋公园","杭州"));
sceneryMap.put("CN10121010104A",newScenery(2,"雷峰塔","杭州"));
sceneryMap.put("CN10109060801A",newScenery(3,"八达岭长城","北京"));
Gsongson=newGson();
//所有的java对象转成json字符串都统一使用toJson()方法
Stringjson=gson.toJson(sceneryMap);
System.out.println(json);
//结果:{"CN10121010103A":{"id":1,"name":"杭州极地海洋公园","address":"杭州"},"CN10121010104A":{"id":2,"name":"雷峰塔","address":"杭州"},"CN10109060801A":{"id":3,"name":"八达岭长城","address":"北京"}}
//吧json字符串转换回map集合
//使用匿名内部类
Mapmap=gson.fromJson(json,newTypeToken
总结
到此这篇关于JSON在Java中的相互转换示例详解的文章就介绍到这了,更多相关jsonjava相互转换内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!