Java 如何使用Gson将嵌套的json对象添加到文件中?

Java 如何使用Gson将嵌套的json对象添加到文件中?,java,android,json,gson,Java,Android,Json,Gson,因此,我有以下代码: Team team = new Team(); team.setLeader(player.getUniqueId().toString()); team.setTeamName(args[1]); team.setSerilizedInventory(InventoryStringDeSerializer.InventoryT

因此,我有以下代码:

  Team team = new Team();
                        team.setLeader(player.getUniqueId().toString());
                        team.setTeamName(args[1]);
                        team.setSerilizedInventory(InventoryStringDeSerializer.InventoryToString(inventory));

                        List<String> mods = new ArrayList<String>();

                        team.setMods(mods);
                        team.setMembers(members);
                        Teams teams = new Teams();
                        teams.setTeam(team);
                        try{
                            Gson gson = new GsonBuilder().setPrettyPrinting().create();
                            Writer writer = new FileWriter(instance.getFile());
                            gson.toJson(team, writer);
                            writer.close();

                        }catch(IOException e){
                            e.printStackTrace();
                        }
这甚至可能不是正确的Json,但你明白了。那么如何使用gson将其写入文件?
谢谢

请检查此解决方案,您需要有多个级别的参考

要将文件写入Android文件系统,请参阅此链接以获取解决方案

但是,我强烈建议您将此JSON存储在SQLLite表中

Team.java

import java.util.List;


public class Team {

    private String leader;

    private String serilizedInventory;

    private List members;

    private List mods;

    public String getLeader() {
        return leader;
    }

    public void setLeader(String leader) {
        this.leader = leader;
    }

    public String getSerilizedInventory() {
        return serilizedInventory;
    }

    public void setSerilizedInventory(String serilizedInventory) {
        this.serilizedInventory = serilizedInventory;
    }

    public List getMembers() {
        return members;
    }

    public void setMembers(List members) {
        this.members = members;
    }

    public List getMods() {
        return mods;
    }

    public void setMods(List mods) {
        this.mods = mods;
    }



}
TeamsWrapper.java

import java.util.List;


public class TeamsWrapper {

    private List<Team> team;

    private String teamName;

    public List<Team> getTeam() {
        return team;
    }

    public void setTeam(List<Team> team) {
        this.team = team;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }



}
程序的最终输出

{
    "team" : [{
            "leader" : "RenegadeEagle",
            "serilizedInventory" : "54;",
            "members" : ["069dcc56-cc5b-3867-a4cd-8c00ca516344"],
            "mods" : []
        }, {
            "leader" : "RenegadeEagle",
            "serilizedInventory" : "54;",
            "members" : ["069dcc56-cc5b-3867-a4cd-8c00ca516344"],
            "mods" : []
        }
    ],
    "teamName" : "teamname"
}

谢谢,但问题是这只是一个团队目标。将有多个团队对象。其中每个都包含leader、inventory、members和mod数据类型。那个么你们将如何实现这一点呢?就像在层次结构类中一样,任何结构都是可能的。给我一个JSON的例子,你需要什么来更新代码。例如,下面是我想要编写的json。我的问题是我不知道球队的名字是什么。那么我如何将其保存到json文件中呢?
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;


public class Test {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        Team team = new Team();

        team.setLeader("RenegadeEagle");
        team.setSerilizedInventory("54;");
        team.setMods(new ArrayList());


        List members = new ArrayList();
        members.add("069dcc56-cc5b-3867-a4cd-8c00ca516344");

        team.setMembers(members);

        TeamsWrapper tw = new TeamsWrapper();

        List ls1 = new ArrayList();

        ls1.add(team);
        ls1.add(team);

        tw.setTeam(ls1);
        tw.setTeamName("teamname");


        Gson gson = new GsonBuilder().create();
        System.out.println(gson.toJson(tw));



    }

}
{
    "team" : [{
            "leader" : "RenegadeEagle",
            "serilizedInventory" : "54;",
            "members" : ["069dcc56-cc5b-3867-a4cd-8c00ca516344"],
            "mods" : []
        }, {
            "leader" : "RenegadeEagle",
            "serilizedInventory" : "54;",
            "members" : ["069dcc56-cc5b-3867-a4cd-8c00ca516344"],
            "mods" : []
        }
    ],
    "teamName" : "teamname"
}