tgoop.com/javapro_ir/4571
Create:
Last Update:
Last Update:
✳️ کار با JsonNode و Tree Model در Jackson — دسترسی به دادههای JSON بدون نیاز به ساخت کلاس
در بسیاری از مواقع، ممکن است بخواهید به دادههای داخل یک فایل یا رشتهی JSON دسترسی پیدا کنید بدون اینکه ابتدا کلاس جاوایی (POJO) برای آن بسازید. در این حالت، کتابخانهی Jackson راهکاری قدرتمند به نام Tree Model API ارائه میدهد که با استفاده از کلاس `JsonNode`، امکان پیمایش و خواندن دادهها را بهصورت درختی فراهم میکند.
🔹 ۱. مفهوم Tree Model در Jackson
در این مدل، دادهی JSON مانند یک درخت در نظر گرفته میشود که شامل گرهها (Nodes) است.
هر گره میتواند یک Object،Array، یا Value باشد.
کلاس اصلی برای کار با این مدل، `JsonNode` است که از طریق `ObjectMapper` ساخته میشود.
🔹 ۲. نمونهی کد — خواندن و دسترسی به دادهها
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonNodeExample {
public static void main(String[] args) throws Exception {
String json = """
{
"name": "Saleh",
"age": 25,
"skills": ["Java", "Spring", "Networking"],
"address": {
"city": "Tehran",
"country": "Iran"
}
}
""";
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(json);
// دسترسی به مقادیر
String name = root.get("name").asText();
int age = root.get("age").asInt();
String firstSkill = root.get("skills").get(0).asText();
String city = root.get("address").get("city").asText();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("First Skill: " + firstSkill);
System.out.println("City: " + city);
}
}
📍 خروجی برنامه:
Name: Saleh
Age: 25
First Skill: Java
City: Tehran
🔹 ۳. بررسی دقیقتر JsonNode
* متد get() برای دسترسی به یک کلید خاص در شیء JSON استفاده میشود.
* متد asText()`، `asInt() و سایر متدهای asType() برای تبدیل مقدار گره به نوع دادهی مورد نظر کاربرد دارند.
* میتوانید با متد isArray() و isObject() نوع گره را بررسی کنید.
🔹 ۴. مثال پیشرفتهتر — پیمایش روی آرایهها
for (JsonNode skill : root.get("skills")) {
System.out.println("Skill: " + skill.asText());
}
📍 خروجی:
Skill: Java
Skill: Spring
Skill: Networking
🧠 جمعبندی:
استفاده از JsonNode و Tree Model در Jackson زمانی مفید است که:
* ساخت کلاس برای JSON ضروری نیست یا دادهها پویا هستند.
* میخواهید تنها بخشی از داده را بخوانید.
* نیاز دارید ساختار JSON را بررسی یا تحلیل کنید.
اگر دادههای JSON ساختار ثابتی دارند، بهتر است از Data Binding (با کلاسهای جاوا) استفاده کنید، اما اگر دادهها پویا یا ناشناختهاند، Tree Model بهترین گزینه است.
#کاربرـحرفهـای
🆔 @javapro_ir
🆔 @group_javapro
BY برنامه نویسی جاوا | Java
Share with your friend now:
tgoop.com/javapro_ir/4571