-
慕慕森
Jackson 有一个解析 CSV文档的模块。假设您的项目中已经有 Jackson 依赖项,您需要根据需要添加以下内容:<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-csv</artifactId> <version>${jackson.version}</version></dependency>然后创建一个类来定义您的架构并保存值(注意@JsonPropertyOrder注释,因为它定义了 CSV 列的顺序):@JsonPropertyOrder({"name", "year"})public class Person { private String name; private Integer year; // Getters and setters }将 CSV 文档解析为列表,最后将列表写入 JSON 字符串:CsvMapper mapper = new CsvMapper();CsvSchema schema = mapper.schemaFor(Person.class).withHeader();MappingIterator<Object> iterator = mapper.readerFor(Person.class) .with(schema).readValues(new FileInputStream("/path/to/the/csv/file"));String json = new ObjectMapper().writeValueAsString(iterator.readAll());
-
慕后森
您可以使用 Jackson 尝试这样的事情:您唯一需要自己实现的是将 CsvSchema.json 转换为包含列名和列类型的 Map 的第二种方法。 public String generateJsonFromCSV() throws IOException { File csvFile = new File("path/to/csv/mycsv.csv"); File schemaJson = new File("path/to/json/schema.json"); Map<String, CsvSchema.ColumnType> map = getSchemaMapFromJson(schemaJson); CsvSchema.Builder schemaBuilder = new CsvSchema.Builder(); map.forEach(schemaBuilder::addColumn); CsvSchema schema = schemaBuilder.build(); CsvMapper csvMapper = new CsvMapper(); MappingIterator<Map<?, ?>> mappingIterator = csvMapper.readerFor(Map.class).with(schema).readValues(csvFile); String json = new ObjectMapper().writeValueAsString(mappingIterator.readAll()); return json; } //Convert your JsonSchema to Map<String,CsvSchema.ColumnType> private Map<String, CsvSchema.ColumnType> getSchemaMapFromJson(File file) { return new HashMap<>(); }依赖:<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-csv</artifactId> <version>${jackson.version}</version></dependency>
-
慕侠2389804
您可以使用 org.json 库:Map<String, Object> map = new HashMap<>();map.put("name", "1");map.put("year", 1);org.json.JSONObject obj = new org.json.JSONObject(map);System.out.println(obj.toString());输出:{"year":1,"name":"1"}
-
翻阅古今
您可以使用 GSON。它非常易于使用且功能强大。现在我能够解决这个库的所有问题。(https://github.com/google/gson)// your mapMap<String, Object> map = new HashMap<>();map.put("name", "1");map.put("year", 1);// create Gson instanceGson gson = new GsonBuilder().create();// convert to JSONString jsonString = gson.toJson(map);// convert back to mapMap map = gson.fromJson(jsonString, Map.class);