从Java中的结构化原始文件创建json文件的最简单方法?

时间:2014-08-08 18:41:26

标签: java regex json split

示例文件,

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库都可以完成这项工作吗?

1 个答案:

答案 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);

GSON

System.out.println(new Gson().toJson(coordinates));

Jackson

System.out.println(new ObjectMapper().writeValueAsString(coordinates));

输出:

{
  "coordinates": [
    {
      "x1": 12,
      "x2": 20,
      "y1": 30,
      "y2": 40
    },
    {
      "x1": 13,
      "x2": 14,
      "y1": 15,
      "y2": 16
    }
  ]
}