Java libgdx-json将自定义类解析为数组
我有一个.json文件,如下所示:Java libgdx-json将自定义类解析为数组,java,json,libgdx,Java,Json,Libgdx,我有一个.json文件,如下所示: [{ t: 1, x: 0, y: 0 }, { t: 1, x: 1, y: 0 }] HexTileArrayWrapper arrayWrapper = json.fromJson(HexTileArrayWrapper.class, file); Array<HexTile> arrayTiles = arrayWrapper.array; 我有一门课: class HexTile {
[{
t: 1,
x: 0,
y: 0
},
{
t: 1,
x: 1,
y: 0
}]
HexTileArrayWrapper arrayWrapper = json.fromJson(HexTileArrayWrapper.class, file);
Array<HexTile> arrayTiles = arrayWrapper.array;
我有一门课:
class HexTile {
int x,y,t;
}
我有一个数组:
Array<HexTile> hexTiles
数组分片
如何将该文件的内容解析为对象并将其放入该数组?将类名添加到数组元素中,以便Json解析器知道如何将其转换为:
[{
class: com.yourpackage.HexTile,
t: 1,
x: 0,
y: 0
},
{
class: com.yourpackage.HexTile,
t: 1,
x: 1,
y: 0
}]
然后你可以像这样加载它们。我认为libgdx的Json解析器总是对数组使用ArrayList类
Json json = new Json();
ArrayList<HexTile> hexTiles = json.fromJson(ArrayList.class, Gdx.files.internal("myJsonFile.json"));
然后您可以这样加载它:
[{
t: 1,
x: 0,
y: 0
},
{
t: 1,
x: 1,
y: 0
}]
HexTileArrayWrapper arrayWrapper = json.fromJson(HexTileArrayWrapper.class, file);
Array<HexTile> arrayTiles = arrayWrapper.array;
HexTileArrayWrapper arrayWrapper=json.fromJson(HexTileArrayWrapper.class,文件);
Array arrayTiles=arrayWrapper.Array;
我不知道通用Gson和Jackson教程是否适用于Libgdx中的内容,而且Libgdx的文档也不充分(至少对我了解如何使用它)。但是感谢您的努力,祝您有愉快的一天。对于LibGDX,您不需要任何特殊的东西,只需使用json解析器解析它并创建您的对象即可。您可以手动执行,也可以编写Json或Jackson的适配器。我如何解析该文件fromJson()
方法需要一个类,但在文件中它是该类的对象数组。这是适合我的解决方案:
HexTileArrayWrapper arrayWrapper = json.fromJson(HexTileArrayWrapper.class, file);
Array<HexTile> arrayTiles = arrayWrapper.array;