এটি আমার কাছে রয়েছে 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}]}
আমাকে উপরের জেএসওনকে String
নীচের মত সুন্দর প্রিন্ট জেএসএন আউটপুটে (জ্যাকসন ব্যবহার করে) রূপান্তর করতে হবে :
{
"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));
তবে এটি উপরে উল্লিখিত হিসাবে আউটপুটটির যেভাবে প্রয়োজন তার সাথে কাজ করে না।
উপরের জেএসওএন-এর জন্য আমি যে পোজিও ব্যবহার করছি তা এখানে:
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;
}
কেউ আমাকে বলতে পারেন যে আমি জেএসএনের জন্য সঠিক পোজো পেয়েছি কিনা?
আপডেট করা হয়েছে:
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));
এবং তারপরে এটি নীচের মত একটি রেজাল্ট jsp পৃষ্ঠাতে দেখায়:
<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" } ] }
যা আমার দরকার নেই উপরে এটি মুদ্রিত হওয়ার মতোভাবে আমার দরকার ছিল। কেউ আমাকে বলতে পারেন কেন এমন ঘটনা ঘটেছিল?