[英]How do I add nested json Objects to file using Gson?
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. 我正在尝试创建一个包含我所有团队价值的json文件,但是我不确定如何在嵌套对象论坛中创建它。 I am wanting to follow this json structer. 我想跟随这个json构造函数。
{
"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. 杰森(Json)可能甚至不合适,但您明白了。 So how would I write this using gson to a file? 那么我如何使用gson将其写入文件? Thanks. 谢谢。
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 要将文件写入Android文件系统,请参考此链接以获取解决方案错误:找不到或加载主类com.example.pdfone.MainActivity
However i strongly recommend you to store this JSON in a SQL Lite Table. 但是,我强烈建议您将此JSON存储在SQL Lite表中。
Team.java 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 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 Test.java->主程序
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"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.