【问题标题】:Serialize JSON file with GSON in java在java中使用GSON序列化JSON文件
【发布时间】:2012-07-03 01:40:31
【问题描述】:

我想把这个 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文件在一个字符串变量中

【问题讨论】:

  • 你能显示完整的代码吗?你定义gson了吗?

标签: java json serialization deserialization gson


【解决方案1】:

您应该将实例变量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);

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多