0

我想将此 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 文件位于字符串变量中

4

1 回答 1

3

您应该将实例变量定义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);
于 2012-07-03T01:53:43.187 回答