You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java将换行分隔JSON中data字段的map类型值序列化为字符串

Java实现NDJSON中data字段Map转JSON字符串方案

核心实现依赖Jackson JSON处理库完成,无需自定义转义逻辑,避免格式出错。

依赖引入(Maven)

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>

核心实现代码

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class NdjsonDataFieldConverter {
    // 全局复用ObjectMapper实例
    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

    public static void main(String[] args) throws IOException {
        // 替换为你的NDJSON文件路径
        String inputFilePath = "input.ndjson";
        try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath))) {
            String line;
            while ((line = reader.readLine()) != null) {
                // 跳过空行
                if (line.trim().isEmpty()) continue;
                String convertedLine = convertLine(line);
                // 输出处理后的行,可自行改为写入文件
                System.out.println(convertedLine);
            }
        }
    }

    private static String convertLine(String rawLine) throws JsonProcessingException {
        // 解析原始JSON行
        JsonNode rootNode = OBJECT_MAPPER.readTree(rawLine);
        // 取出data节点
        JsonNode dataNode = rootNode.get("data");
        // 将data节点序列化为JSON字符串
        String dataJsonStr = OBJECT_MAPPER.writeValueAsString(dataNode);
        // 替换原data字段为字符串类型
        ((ObjectNode) rootNode).put("data", dataJsonStr);
        // 输出处理后的整行JSON
        return OBJECT_MAPPER.writeValueAsString(rootNode);
    }
}

实现说明

  • 逐行读取NDJSON文件,避免一次性加载大文件导致内存溢出
  • 复用ObjectMapper实例,无需重复创建,性能更优
  • Jackson会自动处理JSON字符串内部的双引号转义,无需手动处理,完全匹配期望输出格式
  • 可根据需求调整输入输出来源,比如从网络流读取、写入目标文件等

内容的提问来源于stack exchange,提问作者Jianying Chiang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:06:03