Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java libgdx-json将自定义类解析为数组_Java_Json_Libgdx - Fatal编程技术网

Java libgdx-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 {

我有一个.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 {
    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;