我需要从API获取JSON信息,然后使用其组织信息填充excel文件(通过CSV)。令我感到困惑的部分是将数据整理到excel(CSV)文件中,而json只在一行上打印。我可以举个例子吗?我很困扰。
我已经弄清楚了如何从api接收JSON数据并创建csv文件,但是json数据只打印一行。
我需要将文件组织为(名称,日期等)列,然后使用json数据中的相应信息填充这些列。
谢谢。
答案 0 :(得分:0)
假设您的JSON如下所示:
{"foo":"bar", "baz":"qux"}
您需要将其转换为带有标题行的CSV:
foo,baz
bar,qux
执行此操作的典型方法如下:
Map
jackson提供了一个出色的JSON处理API,因此要在Jackson上执行以下操作:
创建您的POJO:
public class MyBean {
@JsonProperty
private String foo
@JsonProperty
private String baz
}
将JSON反序列化为MyBean
类:
ObjectMapper om = new ObjectMapper();
MyBean b = om.readValue(jsonText, MyBean.class)
现在您只需要输出CSV文本
String csv = "foo,baz\n" + b.getFoo() + "," + b.getBaz();
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(csv);
当然,如果您用Google搜索一点,写出CSV的方法会更好。
答案 1 :(得分:-1)
您肯定从API中获得了一行json,因为最小化的json比要发送的格式化json便宜。
要从json中获取信息,您可以看一下json-pointer https://www.baeldung.com/json-pointer,它使您可以从其中获取特定信息。
检索所有信息后,必须使用选定的数据构造csv文件。