Java JSON字符串与对象转换实战
版权申诉
139 浏览量
更新于2024-09-11
收藏 70KB PDF 举报
"Java中JSON字符串与java对象的互换实例详解"
在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁高效的特点,常用于前后端数据传输。JSON有两种基本格式:对象格式和数组对象格式。对象格式以大括号{}包裹键值对,数组对象格式则在对象格式基础上添加方括号[]。例如:
1. 对象格式:
```json
{
"name": "JSON",
"address": "北京市西城区",
"age": 25
}
```
2. 数组对象格式:
```json
[
{
"name": "JSON",
"address": "北京市西城区",
"age": 25
}
]
```
在JavaScript中,可以使用`JSON.parse()`方法将JSON字符串转换为JavaScript对象,便于操作和处理。
在Java中,为了实现JSON字符串与Java对象之间的转换,通常需要依赖第三方库,如json-lib。json-lib需要依赖五个其他库:commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar以及ezmorph-1.0.6.jar。
json-lib提供了`JSONObject`和`JSONArray`两个类,分别用于处理对象格式和数组对象格式的JSON数据。
一、Java普通对象到JSON字符串的转换
要将Java对象转换为JSON字符串,可以使用`JSONObject`类的`fromObject()`方法。例如,有一个名为`Person`的Java类,包含`name`、`address`和`age`字段,可以这样做:
```java
import net.sf.json.JSONObject;
public class Person {
private String name;
private String address;
private int age;
// getters and setters...
public static void main(String[] args) {
Person person = new Person();
person.setName("JSON");
person.setAddress("北京市西城区");
person.setAge(25);
JSONObject json = JSONObject.fromObject(person);
String jsonString = json.toString();
System.out.println(jsonString);
}
}
```
二、JSON字符串到Java对象的转换
反之,若要将JSON字符串转换回Java对象,可以使用`JSONObject`的`toBean()`方法。假设我们已经有了一个JSON字符串,可以这样反序列化:
```java
String jsonString = "{\"name\":\"JSON\",\"address\":\"北京市西城区\",\"age\":25}";
Person person = (Person) JSONObject.toBean(JSONObject.fromObject(jsonString), Person.class);
```
这里需要注意的是,`toBean()`方法要求目标Java类具有对应的属性和getter/setter方法。
三、Java集合到JSON数组对象的转换
对于Java集合(如List、Set)转换为JSON数组对象,可以使用`JSONArray`类:
```java
List<Person> peopleList = new ArrayList<>();
// 添加Person对象到peopleList...
JSONArray jsonArray = JSONArray.fromObject(peopleList);
String jsonArrayString = jsonArray.toString();
```
四、JSON数组对象到Java集合的转换
同样,可以将JSON数组对象转换回Java集合:
```java
String jsonArrayString = "[{\"name\":\"JSON1\",\"address\":\"City1\",\"age\":30},{\"name\":\"JSON2\",\"address\":\"City2\",\"age\":35}]";
List<Person> peopleList = (List<Person>) JSONArray.toList(JSONArray.fromObject(jsonArrayString), Person.class);
```
通过以上方式,Java开发者能够方便地在JSON字符串和Java对象之间进行互换,从而在前后端数据交换中实现灵活的数据处理。
2020-12-22 上传
2019-04-11 上传
2024-06-27 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情