杰瑞科技汇

Java字符串如何快速转JSON?

Java String 转 JSON

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

Java字符串如何快速转JSON?-图1
(图片来源网络,侵删)

使用 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处理功能。

Java字符串如何快速转JSON?-图2
(图片来源网络,侵删)

示例代码

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
        }
    }
}

注意事项

  1. 异常处理:JSON解析可能会抛出异常,应该进行适当的异常处理
  2. 性能考虑:对于大量JSON数据,Jackson通常性能最好
  3. 安全性:确保输入的JSON字符串是可信的,防止JSON注入攻击
  4. 复杂对象:对于复杂对象,需要定义相应的Java类或使用TypeReference

选择哪种方法取决于你的项目需求、性能要求和现有依赖,Jackson和Gson是最常用和功能最全面的选项。

Java字符串如何快速转JSON?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇