آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

اگر متد سریالایز به صورت زیر باشد:

private void serialize() {

    User user = new User(
            "Maryam",
            "Maryamflower111@yahoo.com",
            28,
            null
    );

    Gson gson = new Gson();

    String s = gson.toJson(user);

}

خروجی همانند زیر خواهد بود:

{
  "email": "Maryamflower111@yahoo.com",
  "name": "Maryam",
  "age": 28
}

 

نتیجه اخلاقی: فیلد نال در جیسون وجود نخواهد داشت.

 

اگر متد دیسریالایزر به صورت زیر باشد (فیلد isDeveloper در جیسون وجود ندارد):

private void deSerialize() {

    String jsonSrc ="{\n" +
            "  \"name\": \"Maryam goli\",\n" +
            "  \"email\": \"Maryamflower111@yahoo.com\",\n" +
            "  \"age\": 28\n" +
            "}";

    User user = new Gson().fromJson(jsonSrc, User.class);
    
}

 

خروجی:

 

نتیجه اخلاقی: فیلد isDeveloper نال خواهد بود.

اینجا isDeveloper از نوع Boolean بود، اگر از جنس primitiveها بود چی؟ در این صورت مقدار پیش فرض رو میگرفت. یعنی false برای boolean و صفر برای int اینا.

 

سوال: حالا چیکار کنیم مقدار null رو سریالایز کنه؟

برای این کار باید پیکره بندی Gson رو تغییر بدیم و از GsonBuilder استفاده کنیم. به صورت زیر:

private void serialize() {

    User user = new User(
            "Maryam",
            "Maryamflower111@yahoo.com",
            28,
            null
    );

    Gson gson = new GsonBuilder().serializeNulls().create();

    String s = gson.toJson(user);

}

 

خروجی:

{
  "email": "Maryamflower111@yahoo.com",
  "isDeveloper": null,
  "name": "Maryam",
  "age": 28
}
موافقین ۰ مخالفین ۰ ۹۹/۰۹/۱۲
میم دال

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی