java中使用json import_Java中 Json的使用

Java JSON

本章节我们将为大家介绍如何在 Java 语言中使用 JSON。

类库选择

Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。

下面是几个常用的 JSON 解析类库。

Gson:谷歌开发的 JSON 库,功能十分全面。

FastJson:阿里巴巴开发的 JSON 库,性能十分优秀。

Jackson:社区十分活跃且更新速度很快。

以下教程基于 FastJson 讲解。

环境配置

在 Maven 构建的项目中,在pom.xml文件中加入以下依赖即可。

com.alibaba

fastjson

1.2.47

编码与解码

编码

从Java变量到 JSON 格式的编码过程如下:

public voidtestJson() {

JSONObject object= newJSONObject();//string

object.put("string","string");//int

object.put("int",2);//boolean

object.put("boolean",true);//array

List integers = Arrays.asList(1,2,3);

object.put("list",integers);//null

object.put("null",null);

System.out.println(object);

}

在上述代码中,首先建立一个 JSON 对象,然后依次添加字符串,整数,布尔值以及数组,最后将其打印为字符串。 输出结果如下:

{"boolean":true,"string":"string","list":[1,2,3],"int":2}

解码

从 JSON 对象到 Java 变量的解码过程如下:

public voidtestJson2() {

JSONObject object=JSONObject

.parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2}");//string

String s = object.getString("string");

System.out.println(s);//int

int i = object.getIntValue("int");

System.out.println(i);//boolean

boolean b = object.getBooleanValue("boolean");

System.out.println(b);//list

List integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);

integers.forEach(System.out::println);//null

System.out.println(object.getString("null"));

}

在上例中,首先从 JSON 格式的字符串中构造一个 JSON 对象,之后依次读取字符串,整数,布尔值以及数组,最后分别打印,打印结果如下:

string2

true

1

2

3

null

JSON 对象与字符串的相互转化

方法作用

JSON.parseObject()

从字符串解析 JSON 对象

JSON.parseArray()

从字符串解析 JSON 数组

JSON.toJSONString(obj/array)

将 JSON 对象或 JSON 数组转化为字符串

实例:

//从字符串解析JSON对象

JSONObject obj = JSON.parseObject("{\"runoob\":\"菜鸟教程\"}");//从字符串解析JSON数组

JSONArray arr = JSON.parseArray("[\"菜鸟教程\",\"RUNOOB\"]\n");//将JSON对象转化为字符串

String objStr =JSON.toJSONString(obj);//将JSON数组转化为字符串

String arrStr = JSON.toJSONString(arr);

Gson的使用

由于最近需要使用Gson,而Gson和fastjson在使用上还是有所区别的,所以今天稍微试一下Gson的使用.

测试代码如下:

importcom.google.common.reflect.TypeToken;importcom.google.gson.Gson;importcom.google.gson.JsonObject;importcom.google.gson.JsonParser;importcom.google.gson.annotations.SerializedName;importjava.util.List;/*** Created by pfliu on 2019/05/16.*/

public classGsonTest {public static voidmain(String[] args) {

Gson gson= newGson();

JsonParser parser= newJsonParser();//从json字符串拿到java对象并且拿到某些字段

String input = "{\"name\": \"huyanshi\", \"age\": 2}";

User user= gson.fromJson(input, User.class);

System.out.println(user.name);

System.out.println(user.age);//从json字符串拿到json对象并且获取某些字段

JsonObject jo =parser.parse(input).getAsJsonObject();

System.out.println(jo.get("name").getAsString());

System.out.println(jo.get("age").getAsInt());//从json字符串解析json的list//language=JSON

String i1 = "[{\"name\":\"huyanshi\",\"age\":\"12\"},{\"name\":\"huyanshi1\",\"age\":\"122\"}]";

List users = gson.fromJson(i1, new TypeToken>() {

}.getType());

System.out.println(users.toString());//新建一个json对象并添加某些字段,之后输出字符串

JsonObject jo1 = newJsonObject();

jo1.addProperty("name", "huyanshi");

jo1.addProperty("age", "12");

System.out.println(jo1.toString());//将java对象或者数组转换为json字符串

String a1 =gson.toJson(user);

String a2=gson.toJson(users);

System.out.println(a1);

System.out.println(a2);//测试注解@SerializedName,

User u = newUser();

u.name= "huyan";

u.age= 2;

System.out.println(gson.toJson(u));

}private static classUser {

@SerializedName(value= "nn")

String name;intage;

@OverridepublicString toString() {return "User{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

}

}

完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值