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

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

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

সিনট্যাক্স

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

উদাহরণ

import java.io.*;
import com.fasterxml.jackson.core.*;

public class JsonGeneratorSettingsTest {
    public static void main(String[] args) throws IOException {
        StringWriter writer = new StringWriter();
        JsonFactory jsonFactory = new JsonFactory();
        JsonGenerator jsonGenerator = jsonFactory.createGenerator(writer);
        
        for(JsonGenerator.Feature feature : JsonGenerator.Feature.values()) {
            boolean result = jsonGenerator.isEnabled(feature);
            System.out.println(feature.name() + ":" + result);
        }
        
        jsonGenerator.close();
    }
}

আউটপুট

AUTO_CLOSE_TARGET:true
AUTO_CLOSE_JSON_CONTENT:true
FLUSH_PASSED_TO_STREAM:true
QUOTE_FIELD_NAMES:true
QUOTE_NON_NUMERIC_NUMBERS:true
ESCAPE_NON_ASCII:false
WRITE_NUMBERS_AS_STRINGS:false
WRITE_BIGDECIMAL_AS_PLAIN:false
STRICT_DUPLICATE_DETECTION:false
IGNORE_UNKNOWN:false

প্রধান ফিচার ব্যাখ্যা

ফিচার ডিফল্ট ব্যাখ্যা
AUTO_CLOSE_TARGET true রাইটিং শেষে আউটপুট টার্গেট (Writer/OutputStream) বন্ধ করুন
AUTO_CLOSE_JSON_CONTENT true অটোমেটিক্যালি রুট অ্যারে/অবজেক্ট ক্লোজ করুন
FLUSH_PASSED_TO_STREAM true flush() কল আন্ডারলাইনিং স্ট্রিমে পাস করুন
QUOTE_FIELD_NAMES true ফিল্ড নাম কোটেশন মার্কে রাখুন (স্ট্যান্ডার্ড JSON)
QUOTE_NON_NUMERIC_NUMBERS true NaN, Infinity কোটেশন মার্কে রাখুন (নন-স্ট্যান্ডার্ড)
ESCAPE_NON_ASCII false নন-ASCII ক্যারেক্টার Unicode এস্কেপ (\uXXXX) করুন
WRITE_NUMBERS_AS_STRINGS false নাম্বার স্ট্রিং হিসেবে লিখুন (কোটেশন সহ)
WRITE_BIGDECIMAL_AS_PLAIN false BigDecimal সاين্টিফিক নোটেশন ছাড়া প্লেইন লিখুন

কনফিগারেশন

JsonFactory factory = JsonFactory.builder()
    .enable(JsonGenerator.Feature.ESCAPE_NON_ASCII)
    .enable(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN)
    .build();

JsonGenerator generator = factory.createGenerator(outputStream);
  1. জাভাতে ফোল্ডার থেকে শুধু ডাইরেক্টরি পাওয়া

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

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

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