如何创建字段数未知的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
相关产品推荐
相关产品推荐

