2012-09-03 61 views
2

我想反序列化這個JSON使用傑克遜和我有問題的數組部分,你可以看到有沒有字段名稱。 java代碼需要什麼樣的反序列化呢?反序列化JSON使用傑克遜與丟失的字段

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

謝謝,

BC

回答

1

最接近的映射(沒有任何更多的上下文)將是使foobar每個雙陣列(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 
} 

傑克遜毫不費力地反序列化數據到這個班。