欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

JSON在Java中的相互转换示例详解

时间:2021-09-17 09:37:54|栏目:JAVA代码|点击:

什么是JSON?

JSON (JavaScript Object Notation) 是一种轻量级数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得JSON成为理想的数据交换格式。

数据交换格式,是指客户端和服务器之间通信,传递数据时,数据使用的格式是json

JSON在java中的使用

json在java中操作,需要用到 歌提供的gson工具类

public class GsonTest {

 @Test
 public void test() {
  Scenery scenery = new Scenery(1, "天坛公园", "北京");
  // Javabean 转换成 json 字符串
  // 创建谷歌的 gson 提供的工具类
  Gson gson = new Gson();
  // 使用 toJson() 方法转换
  String json = gson.toJson(scenery);
  System.out.println(json);
  //结果 : {"id":1,"name":"天坛公园","address":"北京"}

  // 使用 formJson 方法将 json 字符串转换为Javabean 对象
  Scenery sceneryBean = gson.fromJson(json, Scenery.class);
  System.out.println(sceneryBean);
  //结果 : Scenery{id=1, name='天坛公园', address='北京'}
 }
 }

List集合 和json字符串的互转

@Test
 public void testList(){
  // List 和json的互转
  List<Scenery> list = new ArrayList<>();
  list.add(new Scenery(1, "野人谷风景区", "湖北"));
  list.add(new Scenery(2, "绿野山庄", "浙江"));
  list.add(new Scenery(3, "天坛公园", "北京"));
  // 创建 gson 工具类
  Gson gson = new Gson();
  // 使用 toJson() 方法 把list集合转换为json字符串
  String json = 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集合
  //使用匿名内部类
  List<Scenery> list1 = gson.fromJson(json, new TypeToken<List<Scenery>>(){}.getType());
  System.out.println(list1);
  //结果 : [Scenery{id=1, name='野人谷风景区', address='湖北'}, Scenery{id=2, name='绿野山庄', address='浙江'}, Scenery{id=3, name='天坛公园', address='北京'}]

  // 在转成javaBean对象
  Scenery scenery = list1.get(0);
  System.out.println(scenery);
  //结果 : Scenery{id=1, name='野人谷风景区', address='湖北'}
 }

map 和json的互转

@Test
 public void testMap(){
  Map<String, Scenery> sceneryMap = new HashMap<>();
  sceneryMap.put("CN10121010103A", new Scenery(1, "杭州极地海洋公园", "杭州"));
  sceneryMap.put("CN10121010104A", new Scenery(2, "雷峰塔", "杭州"));
  sceneryMap.put("CN10109060801A", new Scenery(3, "八达岭长城", "北京"));
  Gson gson = new Gson();
  // 所有的java对象转成json字符串都统一使用 toJson() 方法
  String json = gson.toJson(sceneryMap);
  System.out.println(json);
  //结果 : {"CN10121010103A":{"id":1,"name":"杭州极地海洋公园","address":"杭州"},"CN10121010104A":{"id":2,"name":"雷峰塔","address":"杭州"},"CN10109060801A":{"id":3,"name":"八达岭长城","address":"北京"}}

  // 吧json字符串转换回 map集合
  // 使用匿名内部类
  Map<String,Scenery> map = gson.fromJson(json, new TypeToken<Map<String, Scenery>>() {
  }.getType());
  System.out.println(map);
  //结果 : {CN10121010103A=Scenery{id=1, name='杭州极地海洋公园', address='杭州'}, CN10121010104A=Scenery{id=2, name='雷峰塔', address='杭州'}, CN10109060801A=Scenery{id=3, name='八达岭长城', address='北京'}}
  Scenery cn10109060801A = map.get("CN10109060801A");
  System.out.println(cn10109060801A);
  // 结果 : Scenery{id=3, name='八达岭长城', address='北京'}
 }

总结

上一篇:spring结合struts的代码详解

栏    目:JAVA代码

下一篇:Mybatis-Plus雪花id的使用以及解析机器ID和数据标识ID实现

本文标题:JSON在Java中的相互转换示例详解

本文地址:http://www.codeinn.net/misctech/175522.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有