示例文件,
x1 x2 y1 y2
12 20 30 40
13 14 15 16
我想像这样创建一个json结构,
{ "coordinates" :
[
{"x1" : 12 , "x2" : 20 , "y1":30 , "y2":40},
{"x1" : 13 , "x2" : 14 , "y1":15 , "y2":16},
]
}
默认解决方案是拆分和加入原始文件。不幸的是,结构化数据不是100%干净,有时也会出现不规则的空间。处理这种转换的最简洁方法是什么,任何轻量级JAVA库都可以完成这项工作吗?
答案 0 :(得分:1)
只需创建一些作为JSON字符串副本的POJO类,并使用GSON或Jackson库将其转换为JSON字符串。
只需逐行读取文件,获取坐标并填充下面的POJO类对象。
示例代码:
class Coordinates {
private ArrayList<XY> coordinates;
// getter & setter
}
class XY {
private int x1, x2, y1, y2;
public XY(int x1, int x2, int y1, int y2) {
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
}
// getter & setter
}
示例代码:
Coordinates coordinates = new Coordinates();
ArrayList<XY> list = new ArrayList<XY>();
list.add(new XY(12, 20, 30, 40));
list.add(new XY(13, 14, 15, 16));
coordinates.setCoordinates(list);
System.out.println(new Gson().toJson(coordinates));
System.out.println(new ObjectMapper().writeValueAsString(coordinates));
输出:
{
"coordinates": [
{
"x1": 12,
"x2": 20,
"y1": 30,
"y2": 40
},
{
"x1": 13,
"x2": 14,
"y1": 15,
"y2": 16
}
]
}