我在LibGDX中,我要保存某些点的位置。我有一个这样的课:
public class DotPositions {
private ArrayList<Vector2> position;
private int numberofDots;
private String levelName;
}
然后我将此类的对象转换为json并使用以下命令将其保存在文件position.json
中:
private ArrayList<Vector2> dotPosition = new ArrayList<>(); //this value is assigned elsewhere
private DotPositions positions;
positions.setNumberofDots(dotPosition.size());
positions.setLevelName("level_one");
Json json = new Json(JsonWriter.OutputType.json);
FileHandle file = Gdx.files.local("position.json");
file.writeString(json.prettyPrint(positions), false);
结果,我得到了一个像这样的json:
{
"position": [
{
"x": 200,
"y": 300
},
{
"x": 250,
"y": 500
}
],
"numberofDots": 2,
"levelName": "level_one"
}
现在我想以相同的方式向同一个json文件添加(追加)另一个级别(例如,级别2)的点位置。我猜它将是一个json数组,但我不知道它是否足以发表声明。有人知道如何将另一个DotPosition
对象转换为json并将其附加到以前保存的json文件中吗?
编辑:我对json知之甚少,所以格式错误,但预期的输出是这样的:
{
"position": [
{
"x": 200,
"y": 300
},
{
"x": 250,
"y": 500
}
],
"numberofDots": 2,
"levelName": "level_one"
},
{
"position": [
{
"x": 100,
"y": 100
},
{
"x": 600,
"y": 350
}
],
"numberofDots": 2,
"levelName": "level_two"
}
答案 0 :(得分:0)
正如dambros所说。最通用(最好)的解决方案是使用DotPosition列表,与对象一起使用它,在工作结束时将此列表保存到文件中。 但是,如果您只需要将任何内容附加到文件中,那么#34; true&#34;方法writeString()中的参数。有关更多信息,请查看:https://github.com/libgdx/libgdx/wiki/File-handling#writing-to-a-file