我在构建一个将按照我的预期解析gson的类时遇到了一些麻烦。
我创建了一个类。
public class JsonObjectBreakDown {
public String type;
public List<String> coordinates = new ArrayList<String>();
}
并致电
JsonObjectBreakDown p = gson.fromJson(withDup, JsonObjectBreakDown.class);
以下是我的json
{
"type":"Polygon",
"coordinates":[
[
[
-66.9,
18.05
],
[
-66.9,
18.05
],
[
-66.9,
18.06
],
[
-66.9,
18.05
]
]
]
}
我在成功之前使用过gson,但从未使用过像这样的数组。我应该不使用List / ArrayList吗?
我收到错误消息;
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 31
OpenCSV代码
CSVReader reader = new CSVReader(new FileReader("c:\\Json.csv"));
String tmp = reader.readNext();
CustomObject tmpObj = CustomObject(tmp[0], tmp[1],......);
答案 0 :(得分:4)
这里的问题是你的JSON中有一个浮点数数组数组。你的班级应该是
public class JsonObjectBreakDown {
public String type;
public List<List<float[]>> coordinates = new ArrayList<>();
}
解析上述内容并尝试
System.out.println(p.coordinates.size());
System.out.println(p.coordinates.get(0).size());
System.out.println(Arrays.toString(p.coordinates.get(0).get(0)));
产量
1
2
[-66.9, 18.05]