यह JSON स्ट्रिंग मेरे पास है:
{"attributes":[{"nm":"ACCOUNT","lv":[{"v":{"Id":null,"State":null},"vt":"java.util.Map","cn":1}],"vt":"java.util.Map","status":"SUCCESS","lmd":13585},{"nm":"PROFILE","lv":[{"v":{"Party":null,"Ads":null},"vt":"java.util.Map","cn":2}],"vt":"java.util.Map","status":"SUCCESS","lmd":41962}]}
मुझे ऊपर दिए गए JSON String
को सुंदर प्रिंट JSON आउटपुट (जैक्सन का उपयोग करके) में बदलने की आवश्यकता है , नीचे की तरह:
{
"attributes": [
{
"nm": "ACCOUNT",
"lv": [
{
"v": {
"Id": null,
"State": null
},
"vt": "java.util.Map",
"cn": 1
}
],
"vt": "java.util.Map",
"status": "SUCCESS",
"lmd": 13585
},
{
"nm": "PROFILE
"lv": [
{
"v": {
"Party": null,
"Ads": null
},
"vt": "java.util.Map",
"cn": 2
}
],
"vt": "java.util.Map",
"status": "SUCCESS",
"lmd": 41962
}
]
}
क्या कोई मुझे मेरे उदाहरण के आधार पर उपरोक्त उदाहरण प्रदान कर सकता है? इस परिदृश्य को कैसे प्राप्त करें? मुझे पता है कि बहुत सारे उदाहरण हैं, लेकिन मैं उन लोगों को ठीक से समझ नहीं पा रहा हूं। एक सरल उदाहरण के साथ किसी भी मदद की सराहना की जाएगी।
अपडेट किया गया:
नीचे दिया गया कोड मैं उपयोग कर रहा हूं:
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(jsonString));
लेकिन यह उस तरीके से काम नहीं करता जिस तरह से मुझे आउटपुट की ज़रूरत थी जैसा कि ऊपर उल्लेख किया गया है।
यहाँ ऊपर के JSON के लिए उपयोग किया जा रहा POJO है:
public class UrlInfo implements Serializable {
private List<Attributes> attribute;
}
class Attributes {
private String nm;
private List<ValueList> lv;
private String vt;
private String status;
private String lmd;
}
class ValueList {
private String vt;
private String cn;
private List<String> v;
}
क्या कोई मुझे बता सकता है कि मुझे JSON के लिए सही POJO मिला या नहीं?
अपडेट किया गया:
String result = restTemplate.getForObject(url.toString(), String.class);
ObjectMapper mapper = new ObjectMapper();
Object json = mapper.readValue(result, Object.class);
String indented = mapper.defaultPrettyPrintingWriter().writeValueAsString(json);
System.out.println(indented);//This print statement show correct way I need
model.addAttribute("response", (indented));
नीचे की रेखा कुछ इस तरह छापती है:
System.out.println(indented);
{
"attributes" : [ {
"nm" : "ACCOUNT",
"error" : "null SYS00019CancellationException in CoreImpl fetchAttributes\n java.util.concurrent.CancellationException\n\tat java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:231)\n\tat java.util.concurrent.FutureTask.",
"status" : "ERROR"
} ]
}
जिस तरह से मुझे दिखाने की जरूरत है। लेकिन जब मैं इसे इस तरह से मॉडल में जोड़ता हूं:
model.addAttribute("response", (indented));
और फिर नीचे के परिणाम पृष्ठ में इसे दिखाता है:
<fieldset>
<legend>Response:</legend>
<strong>${response}</strong><br />
</fieldset>
मुझे ऐसा कुछ मिलता है:
{ "attributes" : [ { "nm" : "ACCOUNT", "error" : "null
SYS00019CancellationException in CoreImpl fetchAttributes\n
java.util.concurrent.CancellationException\n\tat
java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:231)\n\tat
java.util.concurrent.FutureTask.", "status" : "ERROR" } ] }
जिसकी मुझे जरूरत नहीं है। मुझे उस तरह की ज़रूरत थी जिस तरह से ऊपर छपी है। क्या कोई मुझे बता सकता है कि ऐसा क्यों हुआ?