2014-10-04 9 views
5

का उपयोग कर JSON से एकल फ़ील्ड प्राप्त करें एक मनमानी JSON को देखते हुए मैं एक फ़ील्ड contentType का मान प्राप्त करना चाहता हूं। जैक्सन के साथ इसे कैसे करें?जैक्सन

{ 
    contentType: "foo", 
    fooField1: ... 
} 

{ 
    contentType: "bar", 
    barArray: [...] 
} 

संबंधित

उत्तर

15

यह देखते हुए कि आप एक POJO अपने डेटा संरचना का वर्णन नहीं है, तो आप बस सकता है करें:

final String json = "{\"contentType\": \"foo\", \"fooField1\": ... }"; 
final ObjectNode node = new ObjectMapper().readValue(json, ObjectNode.class); 

if (node.has("contentType")) { 
    System.out.println("contentType: " + node.get("contentType")); 
}  
2

आप अपने आवेदन में JSON जार का उपयोग कर रहे हैं तो निम्नलिखित कोड का टुकड़ा उपयोगी है:

String json = "{\"contentType\": \"foo\", \"fooField1\": ... }"; 
JSONObject jsonObject = new JSONObject(json); 
System.out.println(jsonObject.getString("contentType")); 

और यदि आप Gson जार उपयोग कर रहे हैं तो एक ही कोड निम्नलिखित तरह दिखेगा:

Gson gson = new GsonBuilder().create(); 
Map jsonMap = gson.fromJson(json, Map.class); 
System.out.println(jsonMap.get("contentType"));