একটি JsonNode হল Jackson-এর ট্রি মডেল JSON-এর জন্য এবং এটি JSON কে একটি JsonNode ইনস্ট্যান্সে পড়তে পারে এবং একটি JsonNode কে JSON-এ লিখতে পারে। Jackson-এ JSON কে একটি JsonNode-এ পড়তে হলে ObjectMapper ইনস্ট্যান্স তৈরি করে readValue() মেথড কল করতে হয়। আমরা JsonNode ক্লাসের get() মেথড ব্যবহার করে একটি ফিল্ড, অ্যারে বা নেস্টেড অবজেক্ট অ্যাক্সেস করতে পারি। আমরা asText() মেথড ব্যবহার করে একটি বৈধ স্ট্রিং রিপ্রেজেন্টেশন রিটার্ন করতে পারি এবং asInt() মেথড ব্যবহার করে নোডের ভ্যালুকে জাভা int-এ রূপান্তর করতে পারি।
নিচের উদাহরণে, আমরা JsonNode-এর JSON ফিল্ড, অ্যারে এবং নেস্টেড অবজেক্ট অ্যাক্সেস করতে পারি।
উদাহরণ
import com.fasterxml.jackson.databind.*;
import java.io.*;
public class ParseJSONNodeTest {
public static void main(String args[]) {
String jsonStr = "{ \"name\" : \"Raja\", \"age\" : 30," +
" \"technologies\" : [\"Java\", \"Scala\", \"Python\"]," +
" \"nestedObject\" : { \"field\" : \"value\" } }";
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode node = objectMapper.readValue(jsonStr, JsonNode.class);
JsonNode nameNode = node.get("name");
String name = nameNode.asText();
System.out.println(name);
JsonNode ageNode = node.get("age");
int age = ageNode.asInt();
System.out.println(age);
JsonNode array = node.get("technologies");
JsonNode jsonNode = array.get(1);
String techStr = jsonNode.asText();
System.out.println(techStr);
JsonNode child = node.get("nestedObject");
JsonNode childField = child.get("field");
String field = childField.asText();
System.out.println(field);
} catch (IOException e) {
e.printStackTrace();
}
}
}
আউটপুট
Raja 30 Scala value