我想将这个 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/