به جکسون برای JSON در جاوا بروید: درک JsonNode، ArrayNode، و ObjectMapper

Summarize this content to 400 words in Persian Lang
سلام، توسعه دهندگان جاوا! 🚀
تا به حال متوجه شده اید که به داده های JSON خیره شده اید و فکر می کنید، “چگونه می توانم با این در جاوا کار کنم؟” نگران نباشید – شما تنها نیستید! خواه ساختن API ها، مصرف آنها، یا صرفاً مدیریت داده ها، سروکار داشتن با JSON تقریباً اجتناب ناپذیر است. اما خبر خوب اینجاست: جکسون پشت شماست
در این مقاله، من قصد دارم شما را با برخی از اصول اولیه جکسون آشنا کنم JsonNode، ArrayNode و ObjectMapper. ما آن را ساده نگه میداریم، با مثالهای کد آسان و خروجیها تا به شما نشان دهیم کارها دقیقاً چگونه کار میکنند.
صدا خوب است؟ بیایید شیرجه بزنیم! 🔍
راه اندازی جکسون در پروژه چکمه بهار
قبل از اینکه به مثالها بپردازیم، اجازه دهید به سرعت نحوه راهاندازی جکسون در پروژه Spring Boot را توضیح دهیم. خبر خوب: Spring Boot دارای جکسون داخلی است، بنابراین حداقل تنظیمات مورد نیاز است. 🎉
هنگامی که یک پروژه Spring Boot جدید ایجاد می کنید، جکسون به عنوان کتابخانه پیش فرض JSON برای سریال سازی و deserialization می آید. اگر میخواهید به صراحت جکسون را اضافه کنید، اطمینان حاصل کنید که وابستگی زیر در شما وجود دارد pom.xml:
com.fasterxml.jackson.core
jackson-databind
2.18.0
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این کارکردهای اصلی جکسون را اضافه می کند، از جمله ObjectMapper، برای مدیریت JSON.
امتیاز: پیکربندی بوت بهارSpring Boot یک راه اندازی خارج از جعبه برای جکسون فراهم می کند، اما شما همچنین می توانید آن را از طریق application.properties یا application.yml فایل
به عنوان مثال، برای پیکربندی چاپ زیبای JSON، می توانید اضافه کنید:
spring.jackson.serialization.indent_output=true
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یا در application.yml:
spring:
jackson:
serialization:
indent_output: true
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اکنون، هر زمان که برنامه Spring Boot شما JSON را سریالی می کند، به خوبی قالب بندی می شود!
با انجام این تنظیمات، شما آماده کار با JSON در برنامه Spring Boot با استفاده از جکسون هستید.
بنابراین، جکسون چیست؟
جکسون مانند یک چاقوی ارتش سوئیس برای کار با JSON در جاوا است. می توانید از آن برای موارد زیر استفاده کنید:
1. تبدیل اشیاء جاوا به JSON (سریال سازی).
2. JSON را به اشیاء جاوا تبدیل کنید (Deserialization).
3. JSON را در ساختاری درخت مانند با JsonNode مدیریت کنید.
ما امروز قصد داریم برخی از این ویژگی ها را بررسی کنیم، بنابراین آماده باشید تا کار با JSON را بسیار کمتر ترسناک کنید!
JsonNode: اولین قدم شما در JSON
به JsonNode به عنوان یک کلید جادویی فکر کنید که به شما امکان می دهد داده های JSON را کاوش و دستکاری کنید. این راهی برای نمایش بخشهای مختلف ساختار JSON در جاوا است.
تصور کنید این داده های ساده JSON را دارید:
{
“name”: “Samarth”,
“age”: 30,
“city”: “New York”
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
چگونه این را در جاوا می خوانید؟ ببینیم!
این هم کد:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonNodeExample {
public static void main(String[] args) throws Exception {
String jsonString = “{\”name\”:\”Samarth\”, \”age\”:30, \”city\”:\”New York\”}”;
// Step 1: Create an ObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
// Step 2: Parse the JSON string into a JsonNode
JsonNode jsonNode = objectMapper.readTree(jsonString);
// Step 3: Access values from the JsonNode
System.out.println(“Name: ” + jsonNode.get(“name”).asText());
System.out.println(“Age: ” + jsonNode.get(“age”).asInt());
System.out.println(“City: ” + jsonNode.get(“city”).asText());
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
و خروجی:
Name: Samarth
Age: 30
City: New York
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اینجا چه خبر است؟
ObjectMapper یاور اصلی جکسون است. این یکی است که بین JSON و جاوا ترجمه می شود.
readTree() JSON را می خواند و آن را به یک شی JsonNode تبدیل می کند.
استفاده می کنیم .get() برای دسترسی به فیلدهای فردی-“name”، “age”، و “city”-از JSON.
خیلی باحاله، درسته؟ اکنون می بینید که کار با JSON در جاوا چقدر آسان است!
ArrayNode: مدیریت آرایه های JSON
اما اگر JSON شما یک آرایه باشد چه؟ نگران نباشید، جکسون آن را نیز پوشش داده است! فرض کنید این آرایه JSON را دارید:
[{“name”: “Samarth”},
{“name”: “Ujjwal”},
{“name”: “Gaurav”}
]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ما می توانیم از ArrayNode برای خواندن و کار با این آرایه از اشیاء استفاده کنیم.
این هم کد:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
public class ArrayNodeExample {
public static void main(String[] args) throws Exception {
String jsonArrayString = “[{\”name\”:\”Samarth\”}, {\”name\”:\”Ujjwal\”}, {\”name\”:\”Gaurav\”}]”;
// Step 1: Create an ObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
// Step 2: Parse the JSON array into an ArrayNode
ArrayNode arrayNode = (ArrayNode) objectMapper.readTree(jsonArrayString);
// Step 3: Loop through each element in the array
for (JsonNode jsonNode : arrayNode) {
System.out.println(“Name: ” + jsonNode.get(“name”).asText());
}
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
و خروجی:
Name: Samarth
Name: Ujjwal
Name: Gaurav
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اینجا چه خبر است؟
ArrayNode نوع خاصی از JsonNode که آرایه ای از اشیاء JSON را نشان می دهد.
ما از طریق هر عنصر در آرایه حلقه می زنیم و “نام” هر فرد را چاپ می کنیم.
آسان است، درست است؟ با ArrayNode، جکسون کار با آرایه های JSON را آسان می کند!
ObjectMapper: قلب جکسون
حالا بیایید در مورد آن صحبت کنیم ObjectMapper – قلب و روح جکسون. این ابزار پیشرو شما برای تبدیل اشیاء جاوا به JSON و بالعکس است.
سریال سازی اشیاء جاوا به JSONسریال سازی فقط یک روش فانتزی برای گفتن است: “شئ جاوا من را به یک رشته JSON تبدیل کنم.” بیایید بگوییم شما یک ساده دارید Personکلاس:
کد:
import com.fasterxml.jackson.databind.ObjectMapper;
public class SerializationExample {
public static void main(String[] args) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
// Step 1: Create a Java object
Person person = new Person(“Samarth”, 30, “New York”);
// Step 2: Convert the Java object to JSON (serialization)
String jsonString = objectMapper.writeValueAsString(person);
// Output the JSON
System.out.println(“Serialized JSON: ” + jsonString);
}
}
class Person {
private String name;
private int age;
private String city;
public Person(String name, int age, String city) {
this.name = name;
this.age = age;
this.city = city;
}
public String getName() { return name; }
public int getAge() { return age; }
public String getCity() { return city; }
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خروجی:
Serialized JSON: {“name”:”Samarth”,”age”:30,”city”:”New York”}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اینجا چه خبر است؟
ObjectMapper را می گیرد Personشی و با استفاده از آن آن را به یک رشته JSON تبدیل می کند writeValueAsString().
روش writeValueAsString() یک نمایش JSON از شی جاوا ایجاد می کند.
نتیجه یک رشته JSON معتبر است که می توانید به یک API ارسال کنید یا در یک پایگاه داده ذخیره کنید.
غیراصولی کردن JSON به یک شی جاوا
و برعکس هم کار میکنه! می توانید JSON را بگیرید و آن را به یک شی جاوا تبدیل کنید. به این می گویند سریال زدایی.
این هم کد:
import com.fasterxml.jackson.databind.ObjectMapper;
public class DeserializationExample {
public static void main(String[] args) throws Exception {
String jsonString = “{\”name\”:\”Samarth\”, \”age\”:30, \”city\”:\”New York\”}”;
ObjectMapper objectMapper = new ObjectMapper();
// Step 1: Convert the JSON string to a Java object (deserialization)
Person person = objectMapper.readValue(jsonString, Person.class);
// Output the Java object
System.out.println(“Deserialized Object: ” + person.getName() + “, ” + person.getAge() + “, ” + person.getCity());
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
و خروجی:
Deserialized Object: Samarth, 30, New York
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اینجا چه خبر است؟
استفاده می کنیم ObjectMapper دوباره، اما این بار یک رشته JSON را می خواند و دوباره آن را به a تبدیل می کند Person شیاین کار با استفاده از readValue()، و نتیجه یک شیء کامل جاوا است که برای استفاده در کد شما آماده است.
بسته بندی
و شما آن را دارید! ما زمین های زیادی را پوشانده ایم:
JsonNode: نحوه خواندن و دستکاری داده های JSON.
ArrayNode: نحوه مدیریت آرایه های JSON.
ObjectMapper: نحوه سریالسازی و سریالزدایی اشیاء جاوا به و از JSON.
امیدوارم این راهنما باعث شود که جکسون کمی ترسناک تر شود و استفاده از آن بسیار سرگرم کننده باشد! هنگامی که به آن دست پیدا کردید، در کوتاه ترین زمان با JSON مانند یک حرفه ای مدیریت خواهید کرد.
اما هی، اینجا متوقف نشو! منتظر مقاله بعدی من باشید که در آن به ویژگی های پیشرفته تر جکسون و بهترین شیوه ها برای برنامه های کاربردی دنیای واقعی عمیق تر خواهیم پرداخت.
دفعه بعد می بینمت! کد نویسی مبارک! 😄
سلام، توسعه دهندگان جاوا! 🚀
تا به حال متوجه شده اید که به داده های JSON خیره شده اید و فکر می کنید، “چگونه می توانم با این در جاوا کار کنم؟” نگران نباشید – شما تنها نیستید! خواه ساختن API ها، مصرف آنها، یا صرفاً مدیریت داده ها، سروکار داشتن با JSON تقریباً اجتناب ناپذیر است. اما خبر خوب اینجاست: جکسون پشت شماست
در این مقاله، من قصد دارم شما را با برخی از اصول اولیه جکسون آشنا کنم JsonNode، ArrayNode و ObjectMapper. ما آن را ساده نگه میداریم، با مثالهای کد آسان و خروجیها تا به شما نشان دهیم کارها دقیقاً چگونه کار میکنند.
صدا خوب است؟ بیایید شیرجه بزنیم! 🔍
راه اندازی جکسون در پروژه چکمه بهار
قبل از اینکه به مثالها بپردازیم، اجازه دهید به سرعت نحوه راهاندازی جکسون در پروژه Spring Boot را توضیح دهیم. خبر خوب: Spring Boot دارای جکسون داخلی است، بنابراین حداقل تنظیمات مورد نیاز است. 🎉
هنگامی که یک پروژه Spring Boot جدید ایجاد می کنید، جکسون به عنوان کتابخانه پیش فرض JSON برای سریال سازی و deserialization می آید. اگر میخواهید به صراحت جکسون را اضافه کنید، اطمینان حاصل کنید که وابستگی زیر در شما وجود دارد pom.xml
:
com.fasterxml.jackson.core
jackson-databind
2.18.0
این کارکردهای اصلی جکسون را اضافه می کند، از جمله ObjectMapper
، برای مدیریت JSON.
امتیاز: پیکربندی بوت بهار
Spring Boot یک راه اندازی خارج از جعبه برای جکسون فراهم می کند، اما شما همچنین می توانید آن را از طریق application.properties
یا application.yml
فایل
به عنوان مثال، برای پیکربندی چاپ زیبای JSON، می توانید اضافه کنید:
spring.jackson.serialization.indent_output=true
یا در application.yml
:
spring:
jackson:
serialization:
indent_output: true
اکنون، هر زمان که برنامه Spring Boot شما JSON را سریالی می کند، به خوبی قالب بندی می شود!
با انجام این تنظیمات، شما آماده کار با JSON در برنامه Spring Boot با استفاده از جکسون هستید.
بنابراین، جکسون چیست؟
جکسون مانند یک چاقوی ارتش سوئیس برای کار با JSON در جاوا است. می توانید از آن برای موارد زیر استفاده کنید:
- 1. تبدیل اشیاء جاوا به JSON (سریال سازی).
- 2. JSON را به اشیاء جاوا تبدیل کنید (Deserialization).
- 3. JSON را در ساختاری درخت مانند با JsonNode مدیریت کنید.
ما امروز قصد داریم برخی از این ویژگی ها را بررسی کنیم، بنابراین آماده باشید تا کار با JSON را بسیار کمتر ترسناک کنید!
JsonNode: اولین قدم شما در JSON
به JsonNode به عنوان یک کلید جادویی فکر کنید که به شما امکان می دهد داده های JSON را کاوش و دستکاری کنید. این راهی برای نمایش بخشهای مختلف ساختار JSON در جاوا است.
تصور کنید این داده های ساده JSON را دارید:
{
"name": "Samarth",
"age": 30,
"city": "New York"
}
چگونه این را در جاوا می خوانید؟ ببینیم!
این هم کد:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonNodeExample {
public static void main(String[] args) throws Exception {
String jsonString = "{\"name\":\"Samarth\", \"age\":30, \"city\":\"New York\"}";
// Step 1: Create an ObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
// Step 2: Parse the JSON string into a JsonNode
JsonNode jsonNode = objectMapper.readTree(jsonString);
// Step 3: Access values from the JsonNode
System.out.println("Name: " + jsonNode.get("name").asText());
System.out.println("Age: " + jsonNode.get("age").asInt());
System.out.println("City: " + jsonNode.get("city").asText());
}
}
و خروجی:
Name: Samarth
Age: 30
City: New York
اینجا چه خبر است؟
- ObjectMapper یاور اصلی جکسون است. این یکی است که بین JSON و جاوا ترجمه می شود.
-
readTree()
JSON را می خواند و آن را به یک شی JsonNode تبدیل می کند. - استفاده می کنیم
.get()
برای دسترسی به فیلدهای فردی-"name"
،"age"
، و"city"
-از JSON.
خیلی باحاله، درسته؟ اکنون می بینید که کار با JSON در جاوا چقدر آسان است!
ArrayNode: مدیریت آرایه های JSON
اما اگر JSON شما یک آرایه باشد چه؟ نگران نباشید، جکسون آن را نیز پوشش داده است! فرض کنید این آرایه JSON را دارید:
[
{"name": "Samarth"},
{"name": "Ujjwal"},
{"name": "Gaurav"}
]
ما می توانیم از ArrayNode برای خواندن و کار با این آرایه از اشیاء استفاده کنیم.
این هم کد:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
public class ArrayNodeExample {
public static void main(String[] args) throws Exception {
String jsonArrayString = "[{\"name\":\"Samarth\"}, {\"name\":\"Ujjwal\"}, {\"name\":\"Gaurav\"}]";
// Step 1: Create an ObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
// Step 2: Parse the JSON array into an ArrayNode
ArrayNode arrayNode = (ArrayNode) objectMapper.readTree(jsonArrayString);
// Step 3: Loop through each element in the array
for (JsonNode jsonNode : arrayNode) {
System.out.println("Name: " + jsonNode.get("name").asText());
}
}
}
و خروجی:
Name: Samarth
Name: Ujjwal
Name: Gaurav
اینجا چه خبر است؟
- ArrayNode نوع خاصی از JsonNode که آرایه ای از اشیاء JSON را نشان می دهد.
- ما از طریق هر عنصر در آرایه حلقه می زنیم و “نام” هر فرد را چاپ می کنیم.
آسان است، درست است؟ با ArrayNode، جکسون کار با آرایه های JSON را آسان می کند!
ObjectMapper: قلب جکسون
حالا بیایید در مورد آن صحبت کنیم ObjectMapper – قلب و روح جکسون. این ابزار پیشرو شما برای تبدیل اشیاء جاوا به JSON و بالعکس است.
سریال سازی اشیاء جاوا به JSON
سریال سازی فقط یک روش فانتزی برای گفتن است: “شئ جاوا من را به یک رشته JSON تبدیل کنم.” بیایید بگوییم شما یک ساده دارید Person
کلاس:
کد:
import com.fasterxml.jackson.databind.ObjectMapper;
public class SerializationExample {
public static void main(String[] args) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
// Step 1: Create a Java object
Person person = new Person("Samarth", 30, "New York");
// Step 2: Convert the Java object to JSON (serialization)
String jsonString = objectMapper.writeValueAsString(person);
// Output the JSON
System.out.println("Serialized JSON: " + jsonString);
}
}
class Person {
private String name;
private int age;
private String city;
public Person(String name, int age, String city) {
this.name = name;
this.age = age;
this.city = city;
}
public String getName() { return name; }
public int getAge() { return age; }
public String getCity() { return city; }
}
خروجی:
Serialized JSON: {"name":"Samarth","age":30,"city":"New York"}
اینجا چه خبر است؟
-
ObjectMapper را می گیرد
Person
شی و با استفاده از آن آن را به یک رشته JSON تبدیل می کندwriteValueAsString()
. - روش
writeValueAsString()
یک نمایش JSON از شی جاوا ایجاد می کند. - نتیجه یک رشته JSON معتبر است که می توانید به یک API ارسال کنید یا در یک پایگاه داده ذخیره کنید.
غیراصولی کردن JSON به یک شی جاوا
و برعکس هم کار میکنه! می توانید JSON را بگیرید و آن را به یک شی جاوا تبدیل کنید. به این می گویند سریال زدایی.
این هم کد:
import com.fasterxml.jackson.databind.ObjectMapper;
public class DeserializationExample {
public static void main(String[] args) throws Exception {
String jsonString = "{\"name\":\"Samarth\", \"age\":30, \"city\":\"New York\"}";
ObjectMapper objectMapper = new ObjectMapper();
// Step 1: Convert the JSON string to a Java object (deserialization)
Person person = objectMapper.readValue(jsonString, Person.class);
// Output the Java object
System.out.println("Deserialized Object: " + person.getName() + ", " + person.getAge() + ", " + person.getCity());
}
}
و خروجی:
Deserialized Object: Samarth, 30, New York
اینجا چه خبر است؟
استفاده می کنیم ObjectMapper دوباره، اما این بار یک رشته JSON را می خواند و دوباره آن را به a تبدیل می کند Person
شی
این کار با استفاده از readValue()
، و نتیجه یک شیء کامل جاوا است که برای استفاده در کد شما آماده است.
بسته بندی
و شما آن را دارید! ما زمین های زیادی را پوشانده ایم:
- JsonNode: نحوه خواندن و دستکاری داده های JSON.
- ArrayNode: نحوه مدیریت آرایه های JSON.
- ObjectMapper: نحوه سریالسازی و سریالزدایی اشیاء جاوا به و از JSON.
امیدوارم این راهنما باعث شود که جکسون کمی ترسناک تر شود و استفاده از آن بسیار سرگرم کننده باشد! هنگامی که به آن دست پیدا کردید، در کوتاه ترین زمان با JSON مانند یک حرفه ای مدیریت خواهید کرد.
اما هی، اینجا متوقف نشو! منتظر مقاله بعدی من باشید که در آن به ویژگی های پیشرفته تر جکسون و بهترین شیوه ها برای برنامه های کاربردی دنیای واقعی عمیق تر خواهیم پرداخت.
دفعه بعد می بینمت! کد نویسی مبارک! 😄