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

如何创建字段数未知的JSON?将List<String>转换为指定格式JSON

将字符串List转换为指定格式JSON的实现方法

你需要把包含具体字符串的List<String>(比如List<String> fields = List.of("data1", "data2", "data3");)转换成键为field1、field2、field3...,值对应List中元素的JSON对象,目标格式如下:

{
"field1": "data1",
"field2": "data2",
"field3": "data3",
...
}

以下是几种常见的实现方式:


1. Java原生实现(无需第三方库)

直接通过流拼接JSON字符串,适合简单场景:

import java.util.List;
import java.util.stream.Collectors;

public class ListToJson {
    public static void main(String[] args) {
        List<String> fields = List.of("data1", "data2", "data3");
        
        String json = fields.stream()
                .map((data, index) -> "\"field" + (index + 1) + "\": \"" + data + "\"")
                .collect(Collectors.joining(",\n   ", "{\n   ", "\n}"));
        
        System.out.println(json);
    }
}

运行后会直接输出符合要求的格式化JSON字符串。


2. 使用Jackson库实现

Jackson是Java生态中常用的JSON处理库,适合复杂场景:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListToJsonJackson {
    public static void main(String[] args) throws Exception {
        List<String> fields = List.of("data1", "data2", "data3");
        Map<String, String> jsonMap = new HashMap<>();
        
        for (int i = 0; i < fields.size(); i++) {
            jsonMap.put("field" + (i + 1), fields.get(i));
        }
        
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonMap);
        
        System.out.println(json);
    }
}

先将List元素存入HashMap,再通过ObjectMapper将Map转换为格式化的JSON。


3. 使用Gson库实现

Gson是Google推出的JSON处理库,用法简洁:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListToJsonGson {
    public static void main(String[] args) {
        List<String> fields = List.of("data1", "data2", "data3");
        Map<String, String> jsonMap = new HashMap<>();
        
        for (int i = 0; i < fields.size(); i++) {
            jsonMap.put("field" + (i + 1), fields.get(i));
        }
        
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String json = gson.toJson(jsonMap);
        
        System.out.println(json);
    }
}

同样通过HashMap存储键值对,再利用Gson的格式化输出功能生成目标JSON。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:54:24