首页 > 解决方案 > 将包含对的 JSON 数组转换为点列表

问题描述

我有以下 JSON:

{
  "points": [88,223,88,223,91,223]
}

我需要使用以下方法将其映射到我的以下课程Jackson

public MyClass {
    public List<Point2D.Float> points;
}

我怎样才能做到这一点?

标签: javajsonjackson

解决方案


首先,使用您选择的 JSON 解析器(显然是杰克逊)解析 JSON。

其次,一次迭代列表/数组,2个值,例如

public static List<Point2D.Float> toPoints(List<Float> coords) {
    List<Point2D.Float> points = new ArrayList<>();
    for (Iterator<Float> iter = coords.iterator(); iter.hasNext(); )
        points.add(new Point2D.Float(iter.next(), iter.next()));
    return points;
}

测试

System.out.println(toPoints(List.of(88f, 223f, 88f, 223f, 91f, 223f)));

输出

[Point2D.Float[88.0, 223.0], Point2D.Float[88.0, 223.0], Point2D.Float[91.0, 223.0]]

推荐阅读