Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 如何读取json文件,并使用GSON将其转换为POJO_Java_Android_Json_Gson - Fatal编程技术网

Java 如何读取json文件,并使用GSON将其转换为POJO

Java 如何读取json文件,并使用GSON将其转换为POJO,java,android,json,gson,Java,Android,Json,Gson,我需要将值从json文件传递到java类,json文件如下示例: { "id":1, "name":"Gold", "description":"Shiny!", "spriteId":1, "consumable":true, "effectsId":[1] }, 我需要绘制地图,我做到了: Items i = new Items(); Map<String, Items

我需要将值从json文件传递到java类,json文件如下示例:

    {
        "id":1,
        "name":"Gold",
        "description":"Shiny!",
        "spriteId":1,
        "consumable":true,
        "effectsId":[1]
    },
我需要绘制地图,我做到了:

Items i = new Items();


Map<String, Items> mapaNomes = new HashMap<String, Items>();
mapaNomes.put("Gold",i);
mapaNomes.put("Apple",i );
mapaNomes.put("Clain Mail",i );
1.为Json创建POJO表示。 我发现这个工具可以方便地将json转换为POJO

2.读取您的file.json。把它变成物体 奖金 我认为您的file.json中可能有许多json对象,例如:

{
    "id":1,
    "name":"Gold",
    "description":"Shiny!",
    "spriteId":1,
    "consumable":true,
    "effectsId":[1]
},
...
{
    "id":999,
    "name":"Silver",
    "description":"Whatever!",
    "spriteId":808,
    "consumable":true,
    "effectsId":[2]
},
如果是这种情况,则可以执行以下操作:

JsonReader reader = new JsonReader(new FileReader("file.json"));
List<MapaNomes> mapaNomeses = new Gson().fromJson(
                                reader, 
                                new TypeToken<List<Review>>() {}.getType());

Then you can do whatever you want with each and every one of them

for (MapaNomes mapaNomes : mapaNomeses) {
    // whatever
}
JsonReader=newjsonreader(newfilereader(“file.json”);
List mapanomes=new Gson().fromJson(
读者,
新的TypeToken(){}.getType());
然后你可以对他们中的每一个人做任何你想做的事
用于(MapaNomes MapaNomes:MapaNomes){
//随便
}

为什么要将
映射
转换为与json无关的
BufferedReader
首先将json响应转换为DataObject,然后映射它。这里的
br
BufferedReader
对象
JsonReader reader = new JsonReader(new FileReader("file.json"));
MapaNomes mapaNomes = new Gson().fromJson(reader, MapaNomes.class);
{
    "id":1,
    "name":"Gold",
    "description":"Shiny!",
    "spriteId":1,
    "consumable":true,
    "effectsId":[1]
},
...
{
    "id":999,
    "name":"Silver",
    "description":"Whatever!",
    "spriteId":808,
    "consumable":true,
    "effectsId":[2]
},
JsonReader reader = new JsonReader(new FileReader("file.json"));
List<MapaNomes> mapaNomeses = new Gson().fromJson(
                                reader, 
                                new TypeToken<List<Review>>() {}.getType());

Then you can do whatever you want with each and every one of them

for (MapaNomes mapaNomes : mapaNomeses) {
    // whatever
}