JSONObject.toJSONString()与JSON.toJSON()区别
时间: 2025-07-14 22:20:18 浏览: 6
在Java中,`JSONObject.toJSONString()` 和 `JSON.toJSON()` 是两个常见的方法,用于将对象转换为JSON格式。它们都来自`fastjson`库,但它们的使用场景和功能有所不同。
---
### 1. `JSONObject.toJSONString()`
`JSONObject.toJSONString()` 方法的作用是将一个 `JSONObject` 对象或任意 Java 对象序列化为 JSON 格式的字符串。
#### 示例代码
```java
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
// 创建一个JSONObject对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Alice");
jsonObject.put("age", 25);
// 使用toJSONString()方法将JSONObject转换为JSON字符串
String jsonString = JSONObject.toJSONString(jsonObject);
System.out.println("JSON String: " + jsonString);
}
}
```
#### 输出结果
```
JSON String: {"age":25,"name":"Alice"}
```
#### 解释
- `JSONObject.toJSONString()` 可以直接将一个 `JSONObject` 或其他类型的对象(如 `Map`、`List` 等)转换为 JSON 字符串。
- 它支持自定义配置,例如是否格式化输出、是否循环引用检测等。
---
### 2. `JSON.toJSON()`
`JSON.toJSON()` 方法的作用是将任意 Java 对象转换为对应的 JSON 对象(`JSONObject` 或 `JSONArray`),而不是直接生成 JSON 字符串。
#### 示例代码
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
// 创建一个普通的Java对象
Person person = new Person("Bob", 30);
// 使用toJSON()方法将Java对象转换为JSON对象
JSONObject json = (JSONObject) JSON.toJSON(person);
System.out.println("JSON Object: " + json);
// 如果需要转换为字符串,可以再调用toJSONString()
String jsonString = json.toJSONString();
System.out.println("JSON String: " + jsonString);
}
}
class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
```
#### 输出结果
```
JSON Object: {"age":30,"name":"Bob"}
JSON String: {"age":30,"name":"Bob"}
```
#### 解释
- `JSON.toJSON()` 将 Java 对象转换为 JSON 对象(`JSONObject` 或 `JSONArray`),而不是直接生成字符串。
- 如果需要生成 JSON 字符串,还需要进一步调用 `toJSONString()` 方法。
---
### 区别总结
| **特性** | **`JSONObject.toJSONString()`** | **`JSON.toJSON()`** |
|-----------------------|-----------------------------------------------|---------------------------------------------|
| **输入类型** | 支持 `JSONObject` 或任意 Java 对象 | 仅支持 Java 对象 |
| **输出类型** | JSON 字符串 | JSON 对象 (`JSONObject` 或 `JSONArray`) |
| **用途** | 直接生成 JSON 字符串 | 转换为 JSON 对象,便于进一步处理 |
| **是否需要二次转换** | 不需要二次转换 | 需要调用 `toJSONString()` 才能生成 JSON 字符串 |
---
###
阅读全文
相关推荐


















