Jackson API JSON डेटा के साथ काम करने के लिए कई मेथड्स प्रदान करता है। Jackson API का उपयोग करके, हम Java ऑब्जेक्ट्स को JSON स्ट्रिंग में बदल सकते हैं और JSON स्ट्रिंग से ऑब्जेक्ट को रिफॉर्म कर सकते हैं। हम StdSerializer क्लास का उपयोग करके एक कस्टम सीरियलाइज़र इम्प्लीमेंट कर सकते हैं और serialize(T value, JsonGenerator gen, SerializerProvider provider) मेथड को ओवरराइड करने की आवश्यकता होती है, पहला आर्गुमेंट value सीरियलाइज़ किए जाने वाले वैल्यू को दर्शाता है (null नहीं हो सकता), दूसरा आर्गुमेंट gen परिणामी JSON कंटेंट को आउटपुट करने के लिए उपयोग किए जाने वाले जनरेटर को दर्शाता है और तीसरा आर्गुमेंट provider प्रोवाइडर को दर्शाता है जिसका उपयोग ऑब्जेक्ट्स वैल्यू को सीरियलाइज़ करने के लिए सीरियलाइज़र्स प्राप्त करने के लिए किया जा सकता है।
सिंटैक्स
public abstract void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException
उदाहरण
import java.io.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.module.*;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
public class JacksonSerializeTest {
public static void main(String[] args) throws Exception {
JacksonSerializeTest test = new JacksonSerializeTest();
test.serialize();
}
public void serialize() throws Exception {
User user = new User();
user.setFirstName("Raja");
user.setLastName("Ramesh");
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(User.class, new UserSerializer());
mapper.registerModule(module);
String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); // प्रिटी प्रिंट
System.out.println(jsonStr);
}
}
// User क्लास
class User implements Serializable {
private String firstName;
private String lastName;
public String getFirstName() { return firstName; }
public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; }
public void setLastName(String lastName) { this.lastName = lastName; }
}
// UserSerializer क्लास
class UserSerializer extends StdSerializer<User> {
public UserSerializer() {
this(null);
}
public UserSerializer(Class<User> t) {
super(t);
}
@Override
public void serialize(User value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeStringField("firstName", value.getFirstName());
jgen.writeStringField("lastName", value.getLastName());
jgen.writeEndObject();
}
}
आउटपुट
{
"firstName" : "Raja",
"lastName" : "Ramesh"
}