Java中Json的处理攻略
Json是什么?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON格式可以用来描述“键值对”(key-value)类别的数据,通常用于Web服务与Web程序之间的数据交换。
Java中Json的处理方法
1. 使用JSON库
Java中有很多处理JSON的库,比如Gson、Jackson、Fastjson等。我们这里以Gson为例。Gson是Google开源的一个Java库,可以将json字符串转换为Java对象或者将Java对象转换成json字符串。
转换为Java对象
假设有如下JSON字符串:
{
"id": 123,
"name": "小明",
"age": 18
}
我们可以用Gson将其转换为Java对象:
Gson gson = new Gson();
String json = "{\"id\":123,\"name\":\"小明\",\"age\":18}";
Person person = gson.fromJson(json, Person.class);
System.out.println(person.getId());
System.out.println(person.getName());
System.out.println(person.getAge());
其中,Person是一个Java类,其定义如下:
public class Person {
private int id;
private String name;
private int age;
// 省略getter和setter方法
}
上述代码的输出结果为:
123
小明
18
转换为JSON字符串
假设有如下Java对象:
Person person = new Person();
person.setId(123);
person.setName("小明");
person.setAge(18);
我们可以用Gson将其转换为JSON字符串:
Gson gson = new Gson();
String json = gson.toJson(person);
System.out.println(json);
输出结果为:
{"id":123,"name":"小明","age":18}
2. 使用JSONObject和JSONArray
Java SE从JDK1.7版本开始,提供了处理JSON格式的API,其中包括JSONObject和JSONArray。
转换为Java对象
假设有如下JSON字符串:
{
"id": 123,
"name": "小明",
"age": 18
}
我们可以用JSONObject将其转换为Java对象:
String json = "{\"id\":123,\"name\":\"小明\",\"age\":18}";
JSONObject jsonObject = new JSONObject(json);
int id = jsonObject.getInt("id");
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println(id);
System.out.println(name);
System.out.println(age);
输出结果为:
123
小明
18
转换为JSON字符串
假设有如下Java对象:
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", 123);
jsonObject.put("name", "小明");
jsonObject.put("age", 18);
我们可以用JSONObject将其转换为JSON字符串:
String json = jsonObject.toString();
System.out.println(json);
输出结果为:
{"id":123,"name":"小明","age":18}
处理JSONArray
JSONArray是Java SE处理JSON格式的API之一,可以用来处理JSON数组类型的数据。
假设有如下JSON字符串:
[
{
"id": 1,
"name": "电影1",
"duration": 120
},
{
"id": 2,
"name": "电影2",
"duration": 130
}
]
我们可以用JSONArray将其转换为Java数组:
String json = "[{\"id\":1,\"name\":\"电影1\",\"duration\":120},{\"id\":2,\"name\":\"电影2\",\"duration\":130}]";
JSONArray jsonArray = new JSONArray(json);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println(jsonObject.getInt("id"));
System.out.println(jsonObject.getString("name"));
System.out.println(jsonObject.getInt("duration"));
}
输出结果为:
1
电影1
120
2
电影2
130
总结
本文介绍了Java中Json的两种处理方式:使用JSON库和使用JSONObject和JSONArray。其中,使用JSON库可以快速地将JSON字符串转换为Java对象或者将Java对象转换成JSON字符串,但需要引入第三方库;使用JSONObject和JSONArray则是Java SE自带的处理JSON格式的API,可以不依赖第三方库。根据不同的需求,可灵活选择使用哪种方式进行Json数据处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Java中Json的各种处理 - Python技术站