-1
在我的数据存储类我已经使用GSON保存称为setTeam
字符串数据和检索数据称为getTeam
Gson数据存储和检索。存储为字符串,检索作为整数
public class DataStorage {
private static final String TEAM = "Teams";
private static final String TEAM_INFO = "teaminfo";
private static Gson gson = new Gson();
public static void setTeam(MainActivity context, Collection<User> teams) {
String usersJson = gson.toJson(teams);
SharedPreferences.Editor editor = context.getSharedPreferences(TEAM_INFO, Context.MODE_PRIVATE).edit();
editor.putString(TEAM, usersJson);
editor.apply();
}
public static ArrayList<User> getTeam(Context context){
SharedPreferences prefs = context.getSharedPreferences(TEAM_INFO, Context.MODE_PRIVATE);
String usersJson = prefs.getString(TEAM, "[]");
return gson.fromJson(usersJson, new TypeToken<ArrayList<User>>(){}.getType());
}
}
然后我做了一个对于每个保存在队叫User
类我的JSON数据库。因此,对于每个setTeam
有一个teamName
gameWon
和gameLost
public class User implements Serializable {
private String teamName;
private int gameWon;
private int gameLost;
public void setName(String name) {this.teamName = name;}
public String getName() {return teamName;}
public void setGameWon(int wonHome){this.gameWon = wonHome;}
public int getGameWon(){return gameWon;}
public void setGameLost (int gameLoss){this.gameLost = gameLoss;}
public int getGameLost(){return gameLost;}
}
在我创建了一个双串ArrayList
其中包括一些数字的主要活动。
private final String[][] dataTeams = new String[30][3];
所以在dataTeams双数组中有30个团队与他们的gameWon和gameLost。 gameWon和gameLost是数字串。
因此,现在我试图将dataTeams中的任何内容保存到Json数据库中。
User c = new User();
c.setName(dataTeams[i][0]);
c.setGameWon(Integer.parseInt(dataTeams[i][2]));
c.setGameLost(Integer.parseInt(dataTeams[i][3]));
teams.add(c);
DataStorage.setTeam(this, teams);
我已经成功完成了,但是当我检索数据;
ArrayList<User> users = DataStorage.getTeam(this);
String [] teams = new String[30];
for(int i = 0; i < 30; i++) {
teams[i] = users.get(i).getName() + " W:" + users.get(i).getGameWon() + " L:" + users.get(i).getGameLost();
}
行getName是所有球队正确的,但他们的getGameWon和getGameLost均为0,这是不是有什么在双阵列dataTeams
所以,现在我仍坚持是否JSON的I类之间很由DataStorage
当我解析为int
c.setGameWon(Integer.parseInt(dataTeams[i][2]));
c.setGameLost(Integer.parseInt(dataTeams[i][3]));
或者我解析整数错误没有保存字符串。
在dataTeam的数据是
Team W L
Atlanta 60 22
Boston 40 42
Brooklyn 38 44
Charlotte 33 49
Chicago 50 32
Cleveland 53 29
Dallas 50 32
Denver 30 52
Detroit 32 50
Golden State 67 15
Houston 56 26
Indiana 38 44
L.A. Clippers 56 26
L.A. Lakers 21 61
Memphis 55 27
Miami 37 45
Milwaukee 41 41
Minnesota 16 66
New Orleans 45 37
New York 17 65
Oklahoma City 45 37
Orlando 25 57
Philadelphia 18 64
Phoenix 39 43
Portland 51 31
Sacramento 29 53
San Antonio 55 27
Toronto 49 33
Utah 38 44
Washington 46 36
你能分享你的JSON数据吗? –
@PhilipRollins当然,我已经将它添加到底部 – SimranTea
我认为你的数据不是JSON,它是一个TSV(制表符分隔值)。所以你可以使用一些CSV库来读取它的效率。 – Minh