如何在 java 中重新格式化 json 文件

问题描述 投票:0回答:2

好的,这是我的代码 --> 首先我们有一个普通班级:

public class Fencers{
    private String name,nation;
    private int id;

    public Fencers(String name, String nation,int id) {
        this.name = name;
        this.nation = nation;
        this.id = id;
    }

    @Override
    public String toString() {
        return
                id+" "+name+" "+nation+"\n";
    }
}

然后这是我的主类,尝试使用 GSON 将每个类对象转换为 json 文件

class Main{
    public static void main(String[] args){
        Fencers fencer1 = new Fencers("m","egy",100);
        Fencers fencer2 = new Fencers("342","egy",120);
        String json = new Gson().toJson(fencer1);
        json += new Gson().toJson(fencer2);
        System.out.println(json);
     
    }
}

这里唯一的问题是它像这样打印

json

{
  "name":"m",
  "nation":"egy",
  "id":100
}
{"name":"342",
  "nation":"egy",
  "id":120
}

我希望他们像这样

[
 {
  "name":"m",
  "nation":"egy",
   "id":100
  },
  {
   "name":"342",
   "nation":"egy",
   "id":120
 }
]

非常感谢帮助

java json gson
2个回答
0
投票

您需要将元素收集到一个集合(或数组)中。

Fencers fencer1 = new Fencers("m","egy",100);
Fencers fencer2 = new Fencers("342","egy",120);
List<Fencers> list = Arrays.asList(fencer1, fencer2);
String json = new Gson().toJson(list);
System.out.println(json);

0
投票

试试这个:

public static void main(String[] args){
        Fencers fencer1 = new Fencers("m","egy",100);
        Fencers fencer2 = new Fencers("342","egy",120);
        List<Fencers> fencerList = new ArrayList<>();
        fencerList.add(fencer1);
        fencerList.add(fencer2);
        String json = new Gson().toJson(fencerList);
        System.out.println(json);
     
    }
© www.soinside.com 2019 - 2024. All rights reserved.