当前位置: 首页 > 知识库问答 >
问题:

如何将JSON数组转换为特定的CSV格式[duplicate]

松雅健
2023-03-14

我有以下json字符串,我需要使用java spring boot在csv中转换它们。格式如下。

[ {
  "name": "Leanne",
  "address": {
    "street": "Kulas",
    "geo": {
      "lat": "-37.3159",
    }
  },
  "phone": "123",
  "company": {
    "name": "Romaguera",
  }
}
]

共有1个答案

林德辉
2023-03-14

https://www.baeldung.com/java-converting-json-to-csv:

首先,我们使用Jackson的ObjectMapper将示例JSON文档读入JsonNode对象树:

JsonNode jsonTree = new ObjectMapper().readTree(newFile("src/main/resources/orderLines.json"));

接下来,让我们创建一个CsvSchema。这将确定CSV文件中的列标题、类型和列顺序。为此,我们创建一个CsvSchema生成器,并将列标题设置为与JSON字段名匹配:

Builder csvSchemaBuilder = CsvSchema.builder();
JsonNode firstObject = jsonTree.elements().next();
firstObject.fieldNames().forEachRemaining(fieldName -> {csvSchemaBuilder.addColumn(fieldName);} );
CsvSchema csvSchema = csvSchemaBuilder.build().withHeader();

然后,我们用我们的Csvschema创建一个CsvMapper,最后,我们将jsonTree写入我们的CSV文件:

CsvMapper csvMapper = new CsvMapper();
csvMapper.writerFor(JsonNode.class)
  .with(csvSchema)
  .writeValue(new File("src/main/resources/orderLines.csv"), jsonTree);

另一种方式:

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.json.*;
public class ConvertJsonToCSVTest {
   public static void main(String[] args) throws JSONException {
      String jsonArrayString = "{\"fileName\": [{\"first name\": \"Ravi\",\"last name\": \"Chandra\",\"location\": \"Bangalore\"}]}";
      JSONObject output;
      try {
         output = new JSONObject(jsonArrayString);
         JSONArray docs = output.getJSONArray("fileName");
         File file = new File("EmpDetails.csv");
         String csv = CDL.toString(docs);
         FileUtils.writeStringToFile(file, csv);
         System.out.println("Data has been Sucessfully Writeen to "+ file);
         System.out.println(csv);
      }
      catch(Exception e) {
         e.printStackTrace();
      }
   }
}
 类似资料:
  • 问题内容: 我尝试使用json格式的文件作为输入。这是示例数据的片段。 可以在r中使用这种复杂的json格式制作一个csv,以便更平滑地处理数据吗? 例如,有以下基本类别:基本信息照片创建者位置类别网址 可以制作带有basic_information.id,creator.id等子类别类别的csv文件吗? 问题答案: 在研究您的答案时,我在评论中张贴了一些链接,但现在我非常确信这是解决问题的方法。

  • 问题内容: 我收到了JSON文件,但不知道如何读取。有转换器可以在其中生成漂亮的CSV文件,以便将其加载到MS Excel中吗?我不懂JSON,所以如果有人编写脚本或将我链接到可以完成此任务的脚本,那将非常棒。 我在http://json.bloople.net上找到了一些接近的东西,但是不幸的是,它是JSON到HTML。 编辑:jsonformat.com越来越近,但是它仍然不是CSV。 问题答

  • 我有一本由身份证唯一识别的人的字典。现在我需要转换为csv并将其写入路径。然而,我需要一个更有效的解决方案,因为我认为我的方法不能很好地处理大型数据集。 蟒蛇判决 预期产出 我的尝试: 你有更有效的方法吗?我不能改变我最初的判决结构。

  • 问题内容: 我有一个要转换为CSV文件的JSON文件。如何使用Python执行此操作? 我试过了: 但是,它没有用。我正在使用Django,收到的错误是: 然后,我尝试了以下方法: 然后我得到错误: 样本json文件: 问题答案: 首先,你的JSON具有嵌套对象,因此通常无法直接将其转换为CSV。你需要将其更改为以下内容: 这是从中生成CSV的代码: 你将获得以下输出:

  • 问题内容: 我想将数组转换为JSON格式。这是我的来源: 这是我想要的期望结果: 首先,我将字节转换为字符串: 但是当我尝试加载到JSON时: 我收到此错误: 问题答案: 您的对象 几乎 是JSON,但是它使用单引号而不是双引号,并且它必须是字符串。因此,解决该问题的一种方法是解码to 并替换引号。另一种选择是使用; 有关详情,请参见下文。如果要打印结果或将其作为有效JSON保存到文件中,则可以将

  • 问题内容: 如何将数组转换为CSV文件? 这是我的数组: 问题答案: 我正在使用以下功能;它是对fputscsv注释中的man条目之一的改编。而且您可能想要展平该数组;不知道如果您传递一个多维的行会发生什么。