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

如何将我的JSON文件格式化为多行[重复]

羊浩广
2023-03-14

我正在尝试使用Jackson写json。它起作用了,而且据我所知,它的格式是正确的。但是,它仍然只出现在json文件中的一行中。这让它很难读懂。有没有办法让它多行,这样它就可读了?

代码:

// "Tag" is the object.
String json = new Gson().toJson(tag);

// Writing the object to the json file
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("src/main/java/src/backend/json/toJson.json"), json);

toJson文件中的结果:

“{”name“:”div“,”attributes“:[{”type“:”text“,”info“:”two“},{”type“:”class“,”info“:”test“},{”type“:”id“,”info“:”test2“}”,“tagscontining”:[{“name”:“divv”,“attributes”:[],“tagscontining”:[{“name”:“a”,“attributes”:[],“tagscontining”:[]}“,{”name“:”div“,”attributes“:”two“}”,“tagscontining”:[{“type”:“text”,“info”:“two”}“,”tagscontining[{“type”:“text”,“info”:“two”}],“tagscontining”:[]}]},{“name”:“img”,“attributes”:[],“tagscontining”:[]}]}“

如你所见,它被塞进了一行。因此,我需要将其格式化,使其看起来像一个json文件,如下所示:

{
  "name": "div",
  "attributes": [
    {
      "type": "text",
      "info": "Two"
    },
    {
      "type": "class",
      "info": "test"
    },
    {
      "type": "id",
      "info": "test2"
    } ...

我的标记类:

public class Tag {
    String name;
    ArrayList<Attribute> attributes;
    ArrayList<Tag> tagsContaining;

    public Tag() {
        this.attributes = new ArrayList<>();
        this.tagsContaining = new ArrayList<>();
    }

    public Tag(String name) {
        this.name = name;
        this.attributes = new ArrayList<>();
        this.tagsContaining = new ArrayList<>();
    }

    public void addAttribute(Attribute attribute) {
        attributes.add(attribute);
    }

    public void addTag(Tag tag) {
        tagsContaining.add(tag);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Tag{" +
                "name='" + name + '\'' +
                ", attributes=" + attributes +
                ", tagsContaining=" + tagsContaining +
                '}';
    }
}

共有1个答案

黎鹤轩
2023-03-14

要获得所需的结果,需要使用以下方法

ObjectMapper mapper = new ObjectMapper();
mapper.writerWithDefaultPrettyPrinter().writeValue(new FileWriter("src/main/java/src/backend/json/toJson.json"), tag);
 类似资料:
  • 我有一个像这样的excel格式: 我有两个函数来填充数据。这个是填充细节。 这个用来填充总数 问题是,如果我有超过5条记录,数据将被填充到第20行,我的格式被破坏。我的预期结果是,如果有超过5条记录,那么它将为每个添加的记录添加2行(作为格式),并且我的SUM始终是工作表的最后2行。 我正在考虑将 SUM 性别删除到另一个工作表中,并将其复制到最后一个工作表中,直到详细信息完成。但是我遇到了一些问

  • 问题内容: 这是我的代码,非常简单的东西… 声明一些字段名称,阅读器使用CSV读取文件,并使用字段名称将文件转储为JSON格式。这是问题所在… CSV文件中的每个记录都在不同的行上。我希望JSON输出采用相同的方式。问题在于,将其全部倾倒在一条长长的巨线上。 我试过使用类似的代码,然后在该代码下面运行我的代码,该代码循环遍历每一行,但它在一行上执行整个文件,然后在另一行上遍历整个文件…一直持续到行

  • 如何将“”更改为“”?我需要使用sqlalchemy中的数据编写database.json 数据是我数据库的名字 但我的输出是这样的: 它应该是这样的:

  • 本文向大家介绍如何将Java LocalDateTime格式化为ISO_DATE_TIME格式,包括了如何将Java LocalDateTime格式化为ISO_DATE_TIME格式的使用技巧和注意事项,需要的朋友参考一下 首先,设置日期: 现在,将日期时间格式化为ISO_DATE_TIME格式: 示例 输出结果

  • 问题内容: 刚开始使用Bash脚本编写时,偶然发现jq可与JSON一起使用。 我需要将如下所示的JSON字符串转换为表格以在终端中输出。 我要在终端中显示的内容: 请注意,我不想显示每一行的email属性,因此jq命令应该涉及一些过滤。下面为我​​提供了一个简单的名称和ID列表: 问题是,我无法将其显示为表格。我知道jq有一些格式化选项,但不如我使用时的选项好。我想我想在一个数组中获取这些值,然后

  • 这可以在单个sql查询中完成吗?或者我必须在循环中对每个房间进行查询吗?还是在一次查询中转储整个数据集,然后在pyhton中处理它更有效率?这是一个很小的数据集,但我有兴趣知道哪一个是最有效的方法。 先谢谢你,马丁 下面是我的表结构: