2

Jackson を使用してこの JSON を逆シリアル化しようとしていますが、ご覧のとおりフィールド名がない配列部分に問題があります。これを逆シリアル化するには、Java コードはどのように見える必要がありますか?

   {
       "foo":[
          [
             "11.25",
             "0.88"
          ],
          [
             "11.49",
             "0.78976802"
          ]
       ],
       "bar":[
          [
             "10.0",
             "0.869"
          ],
          [
             "9.544503",
             "0.00546545"
          ],
          [
             "9.5",
             "0.14146579"
          ]
       ]
    }

ありがとう、

紀元前

4

1 に答える 1

1

最も近いマッピング (これ以上のコンテキストなし) はfoobarそれぞれを double 配列 (2 次元配列) の配列にすることです。

public class FooBarContainer {

    private final double[][] foo;
    private final double[][] bar;

    @JsonCreator
    public FooBarContainer(@JsonProperty("foo") double[][] foo, @JsonProperty("bar") double[][] bar) {
        this.bar = bar;
        this.foo = foo;
    }
}

使用するには:

public static void main(String[] args) throws IOException {
    ObjectMapper mapper = new ObjectMapper();
    FooBarContainer fooBarContainer = mapper.readValue(CONTENT, FooBarContainer.class);

    //note: bar is visible only if main is in same class
    System.out.println(fooBarContainer.bar[2][1]); //0.14146579
}

Jackson は、そのデータをこのクラスにデシリアライズすることに何の問題もありません。

于 2012-10-03T16:46:34.113 に答える