首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是JSON?在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

}

}

List集合 和json字符串的互转

@Test

public void testList(){

// List 和json的互转

List 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 list1 = gson.fromJson(json, new TypeToken

>(){}.getType());

System.out.println(list1);

//结果 : [Scenery, Scenery, Scenery]

// 在转成javaBean对象

Scenery scenery = list1.get(0);

System.out.println(scenery);

//结果 : Scenery

}

map 和json的互转

@Test

public void testMap(){

Map 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 map = gson.fromJson(json, new TypeToken>() {

}.getType());

System.out.println(map);

//结果 : , CN10121010104A=Scenery, CN10109060801A=Scenery}

Scenery cn10109060801A = map.get("CN10109060801A");

System.out.println(cn10109060801A);

// 结果 : Scenery

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200427A05USP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券