0

So I have the following code:

  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();
                        }

I am attempting to create a json file that contains all my team values, but I am not sure how to make it in nested object forum. I am wanting to follow this json structer.

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

That may not even be proper Json but you get the idea. So how would I write this using gson to a file? Thanks.

RenegadeEagle
  • 68
  • 2
  • 7

1 Answers1

0

Please check this solution, you need to have reference in multiple levels

For writing file to the Android file system refer this link for solution Error: Could not find or load main class com.example.pdfone.MainActivity

However i strongly recommend you to store this JSON in a SQL Lite Table.

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;
    }



}

Test.java --> Main Program

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));



    }

}

Final Output from the program

{
    "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"
}
Community
  • 1
  • 1
Zack Dawood
  • 2,230
  • 20
  • 18
  • Thanks but the problem is with that is It's only one team object. There will be multiple team objects. Each with leader, inventory, members, and mod datatypes in them. So how would you achieve that? – RenegadeEagle Jul 16 '14 at 03:11
  • hi same way have in hierarchy classes, any structure is possible. Give me a example of JSON exactly what you need will update the code. – Zack Dawood Jul 16 '14 at 07:45
  • http://pastebin.com/rhP4dqgq Here is the json I am looking to write, for example. My issue is I don't know what the team name is going to be called. So how would I save this to a json file? – RenegadeEagle Jul 16 '14 at 18:19