কম্পিউটার টিউটোরিয়াল

জ্যাকসনে JsonFactory সেটিংস পাওয়া

JsonFactory ক্লাস থ্রেড-সেফ এবং রাইডার/রাইটার ইনস্ট্যান্স তৈরি করার জন্য দায়িত্বশীল। যে সেটিংগুলো অন/অফ করা যায় সেগুলো JsonFactory.Feature এনামারেশনে রয়েছে, এতে স্ট্যাটিক values() মেথড রয়েছে যা এই টাইপের এনাম কনস্ট্যান্ট রিটার্ন করে।

সিনট্যাক্স

public static enum JsonFactory.Feature extends Enum<JsonFactory.Feature>

উদাহরণ

import com.fasterxml.jackson.core.JsonFactory;

public class JsonFactorySettingsTest {
    public static void main(String[] args) {
        JsonFactory jsonFactory = new JsonFactory();
        for(JsonFactory.Feature feature : JsonFactory.Feature.values()) {
            boolean result = jsonFactory.isEnabled(feature);
            System.out.println(feature.name() + ":" + result);
        }
    }
}

আউটপুট

INTERN_FIELD_NAMES:true
CANONICALIZE_FIELD_NAMES:true
FAIL_ON_SYMBOL_HASH_OVERFLOW:true
USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING:true

ফিচার ব্যাখ্যা

ফিচার ডিফল্ট ব্যাখ্যা
INTERN_FIELD_NAMES true ফিল্ড নাম ইন্টার্ন করুন (স্ট্রিং পুলে স্টোর) মেমোরি বাঁচাতে
CANONICALIZE_FIELD_NAMES true ফিল্ড নাম ক্যানোনিক্যালাইজ করুন (রিইউজের জন্য)
FAIL_ON_SYMBOL_HASH_OVERFLOW true সিম্বল টেবিল ওভারফ্লো হলে ফেইল করুন (DoS প্রোটেকশন)
USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING true থ্রেড-লোকাল বাফার রিসাইক্লিং পারফরম্যান্সের জন্য

কনফিগারেশন

JsonFactory factory = JsonFactory.builder()
    .disable(JsonFactory.Feature.INTERN_FIELD_NAMES)
    .enable(JsonFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW)
    .build();

ObjectMapper mapper = new ObjectMapper(factory);

নোট

JsonFactory ObjectMapper-এ পাস করে শেয়ার করা যায়। একই ফ্যাক্টরি একাধিক ObjectMapper-এ ব্যবহার করলে সিম্বল টেবিল শেয়ার হয় (মেমোরি সেভ)।

  1. জাভাতে ফোল্ডার থেকে শুধু ডাইরেক্টরি পাওয়া

  2. জাভাতে JsonPointer ইন্টারফেস ব্যবহার করে কী-এর মান কীভাবে পাবেন?

  3. জাভাতে GSON ব্যবহার করে JSON অবজেক্টের সব কি পাওয়ার পদ্ধতি

  4. জাভাতে toString() ব্যবহার করে সংখ্যার স্ট্রিং রিপ্রেজেন্টেশন পেতে