Java String 转 JSON
在Java中将String转换为JSON对象,通常需要使用JSON处理库,以下是几种常用的方法:

使用 Jackson 库
Jackson 是最流行的Java JSON处理库之一。
添加依赖(Maven)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
示例代码
import com.fasterxml.jackson.databind.ObjectMapper;
public class StringToJson {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
ObjectMapper objectMapper = new ObjectMapper();
try {
// 将String转换为JsonNode
com.fasterxml.jackson.databind.JsonNode jsonNode = objectMapper.readTree(jsonString);
System.out.println(jsonNode.get("name").asText()); // 输出: John
// 也可以转换为Map
Map<String, Object> map = objectMapper.readValue(jsonString, new TypeReference<Map<String, Object>>() {});
System.out.println(map.get("city")); // 输出: New York
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用 Gson 库
Google 的 Gson 是另一个流行的JSON处理库。
添加依赖(Maven)
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
示例代码
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class StringToJson {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 方法1: 使用JsonParser
JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
System.out.println(jsonObject.get("name").getAsString()); // 输出: John
// 方法2: 使用Gson直接转Map
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(jsonString, Map.class);
System.out.println(map.get("city")); // 输出: New York
}
}
使用 org.json 库
这是一个轻量级的JSON处理库。
添加依赖(Maven)
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20250320</version>
</dependency>
示例代码
import org.json.JSONObject;
public class StringToJson {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
JSONObject jsonObject = new JSONObject(jsonString);
System.out.println(jsonObject.getString("name")); // 输出: John
System.out.println(jsonObject.getInt("age")); // 输出: 30
}
}
使用 Java 内置库(Java 9+)
从Java 9开始,内置了简单的JSON处理功能。

示例代码
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
public class StringToJson {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
try (JsonReader reader = Json.createReader(new StringReader(jsonString))) {
JsonObject jsonObject = reader.readObject();
System.out.println(jsonObject.getString("name")); // 输出: John
System.out.println(jsonObject.getInt("age")); // 输出: 30
}
}
}
注意事项
- 异常处理:JSON解析可能会抛出异常,应该进行适当的异常处理
- 性能考虑:对于大量JSON数据,Jackson通常性能最好
- 安全性:确保输入的JSON字符串是可信的,防止JSON注入攻击
- 复杂对象:对于复杂对象,需要定义相应的Java类或使用TypeReference
选择哪种方法取决于你的项目需求、性能要求和现有依赖,Jackson和Gson是最常用和功能最全面的选项。

