java - 在java中使用GSON序列化JSON文件

标签 java json serialization deserialization gson

我想将这个 JSON 转换为 java 中的对象:

{
    "mapping": [
        {
            "boardPosition": {
                "row": 1,
                "col": 1
            },
            "nodeId": 3242324
        },
        {
            "boardPosition": {
                "row": 1,
                "col": 2
            },
            "nodeId": 432423
        },
        {
            "boardPosition": {
                "row": 1,
                "col": 3
            },
            "nodeId": 424324132
        }
    ]
}

这就是我创建 java 类的方式

class MapeoWumpus {
    public mapp mapping;

    }

class mapp{
    public boardP boardPosition;
    public String nodeId;
}

class boardP{
    public int row;
    public int col;

}

然后当我尝试像这样转换我的文件时

MapeoWumpus mapa=new MapeoWumpus();
mapa=gson.fromJson(filetext, MapeoWumpus.class);

我得到一个空对象

我能做什么?

编辑:这是我的整个代码:

package parserjson;

import java.io.FileNotFoundException;
import java.util.*;
import com.google.gson.*;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) throws FileNotFoundException {
            String filetext;
            ParserJson parser=new ParserJson();
            Gson gson=new Gson();
            MapeoWumpus mapa=new MapeoWumpus();
            filetext=parser.leerArchivo("b1.json");
            mapa=gson.fromJson(filetext, MapeoWumpus.class);
    }

}

“leerArchivo”只是获取 json 文件的方法,您可以看到我的 json 文件位于字符串变量中

最佳答案

您应该将实例变量mapp定义为数组。因为您的 JSON 数据似乎包含映射数组。

class MapeoWumpus {
    public mapp[] mapping;

}

不需要在下面的代码中创建新的 MapeoWumpus

MapeoWumpus mapa=new MapeoWumpus();
mapa=gson.fromJson(filetext, MapeoWumpus.class);

按如下方式更改即可

MapeoWumpus mapa=gson.fromJson(filetext, MapeoWumpus.class);

关于java - 在java中使用GSON序列化JSON文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11303423/

相关文章:

java - 我能否成功反序列化我的类的先前版本?

java - 如何使用 Jackson 的 ObjectMapper.readerForUpdating 忽略某些字段

java - 在哪里存储 Java 的 .properties 文件?

java - 将 javascript Web 应用程序链接到 java

java - Perlin 噪声生成无法正常工作

Java解析String到Int

android - Cordova:android.json 中的 PACKAGE_NAME 是什么意思?

javascript - 计算 JSON 中每个项目的出现次数

ruby-on-rails - ruby rails : Problem adding Transient Attribute to Object for JSON Serializaton

python - 逆向工程通信协议(protocol)