2011-09-15 78 views
0

說我有像這樣的化合物JSON對象:使用傑克遜解析JSON和提取嵌入型

{ 
    "Person": { 
       "name":"test", 
       "age": 20 
      }, 
    "Animal": { 
       "name":"Max" 
      } 
} 

這JSON表示具有兩個嵌入式類型PersonAnimal,然而,我要分析和提取的表示每種類型(導致兩個字符串?)。

這可能嗎?我正在考慮使用Jackson,但找不到合適的示例。

回答

3

任何JSON解析器都可以做到這一點。

如果你不希望映射到一個POJO,並想用傑克遜,你可能尋找的樹模型:http://wiki.fasterxml.com/JacksonTreeModel

+0

在TreeModel中使用Jackson是最終的解決方案。我無法找到一個合適的示例來演示如何從JSON中提取單個類型;最終的解決方案可以在這裏找到(https://gist.github.com/1220791)。 – wulfgarpro

1

這取決於具體的細節,但如果你只是意味着你必須2種不同的性質,不同類型,你可以有類,如:

public class Response { 
    public Person Person; 
    public Animal Animal; 
} 
public class Person { 
    public String name; 
    public int age; 
} 
public class Animal { 
    public String name; 
} 

(和/或使用setter方法,getter方法)。

但是,如果你正在尋找多態類型(類型人與動物相關),它需要更多的工作。