2011-10-21 15 views
5

मेरे पास एक जेसन ऑब्जेक्ट अनुरोध के आधार पर अलग-अलग उद्देश्यों के साथ एक ही संपत्ति के साथ वापस आ रहा है (परिणामस्वरूप जेसन मेरे नियंत्रण से बाहर है)। जब मैं एक विशिष्ट अनुरोध करता हूं तो मुझे केवल संपत्ति मूल्य की परवाह है। क्या deserialization या कुछ और के लिए विचारों का उपयोग करने का कोई तरीका है जो सशर्त रूप से pojo प्रचारित करेगा?Deserialization के लिए जैक्सन जेसन देखें

उदाहरण: Json

"boo": 
{ 
    "a": "foo" 
} 

"boo": 
{ 
    "a": { "x": 3 } 
} 

जावा

public class Views { 
    public static class WhatIWant {} 
    public static class SomeOtherThings {} 
} 

public class Result { 
    @JsonView(View.WhatIWant) 
    public string a; 
} 

Result r = mapper.getDeserializationConfig() 
       .setDeserializationView(Views.WhatIWant.class)?? 
       .readValue(node, Result.class); 

उत्तर

3

जैक्सन में, JSON Views केवल क्रमबद्धता के लिए कर रहे हैं।

कभी-कभी स्ट्रिंग में JSON डेटा को deserialize करने के लिए और अन्य बार किसी ऑब्जेक्ट को custom deserialization processing की आवश्यकता होगी।

संबंधित मुद्दे