Jackson - Hướng dẫn nhanh

Jackson là một thư viện dựa trên java đơn giản để tuần tự hóa các đối tượng java thành JSON và ngược lại.

Đặc trưng

  • Easy to use. - API jackson cung cấp một mặt tiền cấp cao để đơn giản hóa các trường hợp sử dụng thường được sử dụng.

  • No need to create mapping. - API jackson cung cấp ánh xạ mặc định cho hầu hết các đối tượng được tuần tự hóa.

  • Performance. - jackson chạy nhanh không ồn và ít bộ nhớ và thích hợp cho các đồ thị hoặc hệ thống đối tượng lớn.

  • Clean JSON. - jackson tạo ra kết quả JSON rõ ràng và nhỏ gọn, dễ đọc.

  • No Dependency. - Thư viện jackson không yêu cầu bất kỳ thư viện nào khác ngoài jdk.

  • Open Source - Thư viện jackson là mã nguồn mở và sử dụng miễn phí.

Ba cách xử lý JSON

Jackson cung cấp ba cách thay thế để xử lý JSON

  • Streaming API- đọc và ghi nội dung JSON dưới dạng các sự kiện rời rạc. JsonParser đọc dữ liệu trong khi JsonGenerator ghi dữ liệu. Đây là cách tiếp cận mạnh mẽ nhất trong số ba cách tiếp cận và có chi phí thấp nhất và nhanh nhất trong các tùy chọn đọc / ghi. Nó là trình phân tích cú pháp Analogus to Stax cho XML.

  • Tree Model- chuẩn bị một biểu diễn cây trong bộ nhớ của tài liệu JSON. Cây xây dựng ObjectMapper của các nút JsonNode. Đó là cách tiếp cận linh hoạt nhất. Nó tương tự như trình phân tích cú pháp DOM cho XML.

  • Data Binding - chuyển đổi JSON đến và từ POJO (Đối tượng Java cũ) bằng cách sử dụng trình truy cập thuộc tính hoặc sử dụng chú thích. Nó có hai loại.

    • Simple Data Binding - Chuyển đổi JSON sang và từ Java Maps, Lists, Strings, Numbers, Booleans và các đối tượng null.

    • Full Data Binding - Chuyển đổi JSON sang và từ bất kỳ loại JAVA nào.

    ObjectMapper đọc / ghi JSON cho cả hai loại liên kết dữ liệu. Data Binding là cách thuận tiện nhất và tương tự như JAXB parer cho XML.

Dùng thử Tùy chọn trực tuyến

Bạn thực sự không cần phải thiết lập môi trường của riêng mình để bắt đầu học Guava, một thư viện dựa trên JAVA. Lý do rất đơn giản, chúng tôi đã thiết lập môi trường Lập trình Java trực tuyến, để bạn có thể biên dịch và thực thi tất cả các ví dụ có sẵn trực tuyến cùng một lúc khi bạn đang làm bài lý thuyết của mình. Điều này giúp bạn tin tưởng vào những gì bạn đang đọc và kiểm tra kết quả bằng các tùy chọn khác nhau. Vui lòng sửa đổi bất kỳ ví dụ nào và thực hiện trực tuyến.

Hãy thử ví dụ sau bằng cách sử dụng Try it tùy chọn có sẵn ở góc trên cùng bên phải của hộp mã mẫu bên dưới:

public class MyFirstJavaProgram {

    public static void main(String []args) {
       System.out.println("Hello World");
    }
}

Đối với hầu hết các ví dụ được đưa ra trong hướng dẫn này, bạn sẽ thấy Try it tùy chọn, vì vậy chỉ cần tận dụng nó và tận hưởng việc học của bạn.

Thiết lập môi trường cục bộ

Nếu bạn vẫn sẵn sàng thiết lập môi trường của mình cho ngôn ngữ lập trình Java, thì phần này sẽ hướng dẫn bạn cách tải xuống và thiết lập Java trên máy của bạn. Vui lòng làm theo các bước sau để thiết lập môi trường.

Java SE có sẵn miễn phí từ liên kết Tải xuống Java . Vì vậy, bạn tải xuống một phiên bản dựa trên hệ điều hành của bạn.

Làm theo hướng dẫn để tải xuống java và chạy .exeđể cài đặt Java trên máy của bạn. Khi bạn đã cài đặt Java trên máy của mình, bạn sẽ cần đặt các biến môi trường để trỏ đến các thư mục cài đặt chính xác:

Thiết lập đường dẫn cho windows 2000 / XP:

Giả sử bạn đã cài đặt Java trong thư mục c: \ Program Files \ java \ jdk :

  • Nhấp chuột phải vào 'Máy tính của tôi' và chọn 'Thuộc tính'.

  • Nhấp vào nút 'Biến môi trường' trong tab 'Nâng cao'.

  • Bây giờ, hãy thay đổi biến 'Đường dẫn' để nó cũng chứa đường dẫn đến tệp thực thi Java. Ví dụ, nếu đường dẫn hiện được đặt thành 'C: \ WINDOWS \ SYSTEM32', thì hãy thay đổi đường dẫn của bạn thành 'C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin'.

Thiết lập đường dẫn cho windows 95/98 / ME:

Giả sử bạn đã cài đặt Java trong thư mục c: \ Program Files \ java \ jdk :

  • Chỉnh sửa tệp 'C: \ autoexec.bat' và thêm dòng sau vào cuối:
    'SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'

Thiết lập đường dẫn cho Linux, UNIX, Solaris, FreeBSD:

Biến môi trường PATH nên được đặt để trỏ đến nơi các tệp nhị phân Java đã được cài đặt. Tham khảo tài liệu shell của bạn nếu bạn gặp khó khăn khi thực hiện việc này.

Ví dụ: nếu bạn sử dụng bash làm trình bao, thì bạn sẽ thêm dòng sau vào cuối '.bashrc: export PATH = / path / to / java: $ PATH'

Trình chỉnh sửa Java phổ biến:

Để viết các chương trình Java của bạn, bạn sẽ cần một trình soạn thảo văn bản. Thậm chí có nhiều IDE phức tạp hơn có sẵn trên thị trường. Nhưng hiện tại, bạn có thể xem xét một trong những điều sau:

  • Notepad: Trên máy Windows, bạn có thể sử dụng bất kỳ trình soạn thảo văn bản đơn giản nào như Notepad (Khuyến nghị cho hướng dẫn này), TextPad.

  • Netbeans:là một IDE Java mã nguồn mở và miễn phí có thể được tải xuống từ http://www.netbeans.org/index.html.

  • Eclipse: cũng là một IDE Java được phát triển bởi cộng đồng nguồn mở eclipse và có thể được tải xuống từ http://www.eclipse.org/.

Tải xuống kho lưu trữ jackson

Tải xuống phiên bản mới nhất của tệp jar Jackson từ Kho lưu trữ Maven - Jackson . Trong hướng dẫn này, jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar và jackson-databind-2.8.9.jar được tải xuống và sao chép vào thư mục C: \> jackson.

Hệ điều hành Tên lưu trữ
các cửa sổ jackson-xxx-2.8.9.jar
Linux jackson-xxx-2.8.9.jar
Mac jackson-xxx-2.8.9.jar

Đặt môi trường jackson

Đặt jackson_HOMEbiến môi trường để trỏ đến vị trí thư mục cơ sở nơi lưu trữ Guava jar trên máy của bạn. Giả sử, chúng tôi đã giải nén jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar và jackson-databind-2.8.9.jar trong thư mục jackson trên các Hệ điều hành khác nhau như sau.

Hệ điều hành Đầu ra
các cửa sổ Đặt biến môi trường jackson_HOME thành C: \ jackson
Linux xuất jackson_HOME = / usr / local / jackson
Mac xuất jackson_HOME = / Library / jackson

Đặt biến CLASSPATH

Đặt CLASSPATHbiến môi trường để trỏ đến vị trí jar jackson. Giả sử, chúng tôi đã lưu trữ jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar và jackson-databind-2.8.9.jar trong thư mục jackson trên các Hệ điều hành khác nhau như sau.

Hệ điều hành Đầu ra
các cửa sổ Đặt biến môi trường CLASSPATH thành% CLASSPATH%;% jackson_HOME% \ jackson-core-2.8.9.jar;% jackson_HOME% \ jackson-databind-2.8.9.jar;% jackson_HOME% \ jackson-annotations-2.8.9. cái lọ;.;
Linux xuất CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-databind-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar :.
Mac xuất CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-databind-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar :.

Trước khi đi vào chi tiết của thư viện jackson, chúng ta hãy xem một ứng dụng đang hoạt động. Trong ví dụ này, chúng tôi đã tạo lớp Sinh viên. Chúng tôi sẽ tạo một chuỗi JSON với thông tin chi tiết về sinh viên và giải mã hóa nó thành đối tượng sinh viên và sau đó tuần tự hóa nó thành Chuỗi JSON.

Tạo tệp lớp java có tên JacksonTester trong C:\>Jackson_WORKSPACE.

Tệp: JacksonTester.java

import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Verify the result

Biên dịch các lớp bằng cách sử dụng javac trình biên dịch như sau:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Bây giờ hãy chạy jacksonTester để xem kết quả:

C:\Jackson_WORKSPACE>java JacksonTester

Xác minh đầu ra

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

Các bước cần nhớ

Sau đây là các bước quan trọng được xem xét ở đây.

Bước 1: Tạo đối tượng ObjectMapper.

Tạo đối tượng ObjectMapper. Nó là một đối tượng có thể tái sử dụng.

ObjectMapper mapper = new ObjectMapper();

Bước 2: DeSerialize JSON thành Object.

Sử dụng phương thức readValue () để lấy Đối tượng từ JSON. Truyền chuỗi json / nguồn của chuỗi json và kiểu đối tượng làm tham số.

//Object to JSON Conversion
Student student = mapper.readValue(jsonString, Student.class);

Bước 3: Tuần tự hóa đối tượng thành JSON.

Sử dụng phương thức writeValueAsString () để lấy biểu diễn chuỗi JSON của một đối tượng.

//Object to JSON Conversion		
jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);

ObjectMapper là lớp diễn viên chính của thư viện Jackson. Lớp ObjectMapper ObjectMapper cung cấp chức năng đọc và ghi JSON, đến và đi từ POJO cơ bản (Đối tượng Java cũ thuần túy) hoặc đến và từ Mô hình cây JSON có mục đích chung (JsonNode), cũng như chức năng liên quan để thực hiện chuyển đổi. Nó cũng có thể tùy chỉnh cao để làm việc với các kiểu nội dung JSON khác nhau và hỗ trợ các khái niệm Đối tượng nâng cao hơn như tính đa hình và nhận dạng Đối tượng. ObjectMapper cũng hoạt động như một nhà máy cho các lớp ObjectReader và ObjectWriter nâng cao hơn.

Khai báo lớp học

Sau đây là khai báo cho com.fasterxml.jackson.databind.ObjectMapper lớp học -

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

Lớp học lồng nhau

Không. Lớp & Mô tả
1 static class ObjectMapper.DefaultTypeResolverBuilder

TypeResolverBuilder được tùy chỉnh cung cấp trình tạo trình phân giải kiểu được sử dụng với cái gọi là "kiểu gõ mặc định" (xem enableDefaultTyping () để biết chi tiết).

2 static class ObjectMapper.DefaultTyping

Phép liệt kê được sử dụng với enableDefaultTyping () để chỉ định loại (lớp) nhập mặc định nào nên được sử dụng.

Lĩnh vực

  • protected DeserializationConfig _deserializationConfig - Đối tượng cấu hình xác định cài đặt chung cơ bản cho quá trình tuần tự hóa.

  • protected DefaultDeserializationContext _deserializationContext- Đối tượng bối cảnh Blueprint; được lưu trữ ở đây để cho phép các lớp con tùy chỉnh.

  • protected InjectableValues _injectableValues - Nhà cung cấp cho các giá trị để đưa vào POJO được giải hóa.

  • protected JsonFactory _jsonFactory - Factory được sử dụng để tạo các thể hiện JsonParser và JsonGenerator khi cần thiết.

  • protected SimpleMixInResolver _mixIns - Ánh xạ xác định cách áp dụng chú thích kết hợp: key là loại nhận được các chú thích bổ sung và giá trị là loại có chú thích để "kết hợp".

  • protected ConfigOverrides _propertyOverrides - Hiện đang hoạt động ghi đè cấu hình cho mỗi loại, được truy cập bởi loại thuộc tính đã khai báo.

  • protected Set<Object> _registeredModuleTypes - Tập hợp các loại mô-đun (theo Module.getTypeId () đã được đăng ký; theo dõi iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS được bật để có thể bỏ qua các lệnh gọi đăng ký trùng lặp (chủ yếu là để tránh thêm cùng một trình xử lý nhiều lần).

  • protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers - Chúng tôi sẽ sử dụng một Bản đồ cấp chính riêng biệt để theo dõi các bộ giải mã cấp cơ sở.

  • protected SerializationConfig _serializationConfig - Đối tượng cấu hình xác định cài đặt chung cơ bản cho quá trình tuần tự hóa.

  • protected SerializerFactory _serializerFactory - Nhà máy sản xuất bộ nối tiếp dùng để chế tạo bộ nối tiếp.

  • protected DefaultSerializerProvider _serializerProvider - Đối tượng quản lý quyền truy cập vào bộ tuần tự hóa được sử dụng để tuần tự hóa, bao gồm cả bộ nhớ đệm.

  • protected SubtypeResolver _subtypeResolver - Điều được sử dụng để đăng ký kiểu con, giải quyết chúng thành kiểu siêu / con khi cần thiết.

  • protected TypeFactory _typeFactory- Nhà máy cụ thể được sử dụng để tạo các phiên bản JavaType; cần thiết để cho phép các mô-đun thêm nhiều xử lý kiểu tùy chỉnh hơn (hầu hết là để hỗ trợ các loại ngôn ngữ JVM không phải Java).

  • protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR

  • protected static BaseSettings DEFAULT_BASE - Cài đặt cơ sở chứa các giá trị mặc định được sử dụng cho tất cả các phiên bản ObjectMapper.

  • protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER

Người xây dựng

Không. Hàm tạo & Mô tả
1 ObjectMapper()

Hàm khởi tạo mặc định, sẽ tạo JsonFactory mặc định khi cần thiết, sử dụng SerializerProvider làm SerializerProvider và BeanSerializerFactory làm SerializerFactory.

2 ObjectMapper(JsonFactory jf)

Tạo phiên bản sử dụng JsonFactory được chỉ định để xây dựng các JsonParsers và / hoặc JsonGenerator cần thiết.

3 ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)

Phiên bản cấu trúc sử dụng JsonFactory được chỉ định để xây dựng các JsonParsers và / hoặc JsonGenerator cần thiết, đồng thời sử dụng các nhà cung cấp đã cho để truy cập trình tuần tự và trình giải mã.

4 protected ObjectMapper(ObjectMapper src)

Copy-constructor, chủ yếu được sử dụng để hỗ trợ copy ().

Phương pháp

Phương thức trình trợ giúp có thể ghi đè được sử dụng để xây dựng SerializerProvider để sử dụng cho tuần tự hóa. void addMixInAnnotations (Class <?> target, Class <?> mixinSource) - Không được chấp nhận. Kể từ 2,5: được thay thế bằng một hình thức lưu loát của phương pháp; addMixIn (Lớp, Lớp). được bảo vệ DefaultDeserializationContext createDeserializationContext (JsonParser p, DeserializationConfig cfg) - Phương thức trợ giúp nội bộ được gọi để tạo một phiên bản của DeserializationContext để giải mã hóa một giá trị gốc duy nhất. JsonSchema createJsonSchema (Lớp <?> T) - Không được dùng nữa. Kể từ 2.6 sử dụng trình tạo lược đồ JSON bên ngoài (https://github.com/FasterXML/jackson-module-jsonSchema) (ẩn bên trong gọi các lớp acceptJsonFormatVisitor (JavaType, JsonFormatVisitorWrapper)) void registerSubtypes (Class <?> ... các lớp) - Phương thức đăng ký lớp được chỉ định làm kiểu con, để phân giải dựa trên tên kiểu có thể liên kết siêu kiểu với kiểu con (thay thế cho việc sử dụng chú thích). void setFilters (FilterProvider filterProvider) - Không được dùng nữa. Kể từ 2.6, sử dụng setFilterProvider (com.fasterxml.jackson.databind.ser.FilterProvider) để thay thế (cho phép chuỗi) phương thức Factory để xây dựng ObjectReader sẽ sử dụng các chi tiết thoát ký tự được chỉ định cho đầu ra.
1 protected void _checkInvalidCopy(Class<?> exp)

2 protected void _configAndWriteValue(JsonGenerator g, Object value) - Phương thức được gọi để cấu hình trình tạo khi cần thiết và sau đó gọi chức năng ghi
3 protected Object _convert(Object fromValue, JavaType toValueType) - Thực hiện chuyển đổi thực tế: thay vì sử dụng các phương pháp đọc và ghi hiện có, phần lớn mã được nội tuyến.
4 protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) - Phương thức được gọi để xác định vị trí deserializer cho giá trị cấp gốc đã truyền.
5 protected JsonToken _initForReading(JsonParser p) - Phương thức được gọi để đảm bảo rằng trình phân tích cú pháp đã cho sẵn sàng để đọc nội dung để ràng buộc dữ liệu.
6 protected ObjectReader _newReader(DeserializationConfig config) - Các lớp con của phương thức gốc phải ghi đè, để tạo ra các thể hiện ObjectReader của kiểu con thích hợp
7 protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - Các lớp con của phương thức gốc phải ghi đè, để tạo ra các thể hiện ObjectReader của kiểu con thích hợp
số 8 protected ObjectWriter _newWriter(SerializationConfig config) - Các lớp con của phương thức nhà máy phải ghi đè, để tạo ra các thể hiện ObjectWriter của kiểu con thích hợp
9 protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - Các lớp con của phương thức nhà máy phải ghi đè, để tạo ra các thể hiện ObjectWriter của kiểu con thích hợp
10 protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - Các lớp con của phương thức nhà máy phải ghi đè, để tạo ra các thể hiện ObjectWriter của kiểu con thích hợp.
11 protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12 protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - Thực hiện thao tác đọc giá trị + ràng buộc thực tế.
13 protected DefaultSerializerProvider _serializerProvider(SerializationConfig config)
14 protected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, DeserializationConfig config, JavaType rootType, JsonDeserializer<Object> deser)
15 protected void _verifySchemaType(FormatSchema schema)
16 void acceptJsonFormatVisitor(Class<?> type, JsonFormatVisitorWrapper visitor) - Phương pháp phân cấp loại truy cập cho loại đã cho, sử dụng khách truy cập được chỉ định.
17 void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - Phương pháp phân cấp loại truy cập cho loại đã cho, sử dụng khách truy cập được chỉ định.
18 ObjectMapper addHandler(DeserializationProblemHandler h) - Phương pháp thêm DeserializationProblemHandler được chỉ định được sử dụng để xử lý các sự cố cụ thể trong quá trình giải mã.
19 ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource) - Phương pháp sử dụng để thêm các chú thích kết hợp để sử dụng để tăng cường lớp hoặc giao diện được chỉ định.
20 boolean canDeserialize(JavaType type) - Phương thức có thể được gọi để kiểm tra xem liệu người lập bản đồ có nghĩ rằng nó có thể giải mã hóa một Đối tượng thuộc loại đã cho hay không.
21 boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - Phương thức tương tự như canDeserialize (JavaType) nhưng có thể trả về Throwable thực tế đã được ném khi cố gắng xây dựng bộ tuần tự hóa: điều này có thể hữu ích trong việc tìm ra vấn đề thực tế là gì.
22 boolean canSerialize(Class<?> type) - Phương thức có thể được gọi để kiểm tra xem liệu người lập bản đồ có nghĩ rằng nó có thể tuần tự hóa một thể hiện của Lớp đã cho hay không.
23 boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - Phương thức tương tự như canSerialize (Class) nhưng có thể trả về Throwable thực tế đã được ném khi cố gắng xây dựng bộ tuần tự: điều này có thể hữu ích trong việc tìm ra vấn đề thực tế là gì.
24 ObjectMapper clearProblemHandlers() - Phương pháp xóa tất cả các phiên bản DeserializationProblemHandlers đã đăng ký khỏi trình liên kết này.
25 MutableConfigOverride configOverride(Classlt;?> type) - Accessor để nhận đối tượng ghi đè cấu hình có thể thay đổi cho loại nhất định, cần thiết để thêm hoặc thay đổi ghi đè từng loại áp dụng cho các thuộc tính của loại đã cho.
26 ObjectMapper configure(DeserializationFeature f, boolean state) - Phương pháp thay đổi trạng thái của một tính năng deserialization bật / tắt cho trình ánh xạ đối tượng này.
27 ObjectMapper configure(JsonGenerator.Feature f, boolean state) - Phương pháp thay đổi trạng thái của tính năng JsonGenerator bật / tắt cho các thể hiện của trình tạo đối tượng mà trình ánh xạ đối tượng này tạo ra.
28 ObjectMapper configure(JsonParser.Feature f, boolean state) - Phương thức thay đổi trạng thái của JsonParser.Features được chỉ định cho các cá thể phân tích cú pháp mà trình ánh xạ đối tượng này tạo ra.
29 ObjectMapper configure(MapperFeature f, boolean state) - Phương pháp thay đổi trạng thái của một tính năng ánh xạ bật / tắt cho phiên bản ánh xạ này.
30 ObjectMapper configure(SerializationFeature f, boolean state) - Phương pháp thay đổi trạng thái của tính năng tuần tự hóa bật / tắt cho trình ánh xạ đối tượng này.
31 JavaType constructType(Type t) - Phương thức thuận tiện để xây dựng JavaType ngoài kiểu đã cho (thường là java.lang.Class), nhưng không có ngữ cảnh rõ ràng.
32 <T> T convertValue(Object fromValue, Class<T> toValueType) - Phương pháp thuận tiện để thực hiện chuyển đổi hai bước từ giá trị đã cho, sang trường hợp của loại giá trị nhất định, nếu (nhưng chỉ khi!) Chuyển đổi là cần thiết.
33 <T> T convertValue(Object fromValue, JavaType toValueType) - Xem convertValue (Đối tượng, Lớp)
34 <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) - Xem convertValue (Đối tượng, Lớp)
35 ObjectMapper copy() - Phương pháp tạo một thể hiện ObjectMapper mới có cấu hình ban đầu giống như thể hiện này.
36 ArrayNode createArrayNode() - Lưu ý: kiểu trả về là đồng biến thể, vì tính trừu tượng của ObjectCodec cơ bản không thể tham chiếu đến các kiểu nút cụ thể (vì nó là một phần của gói lõi, trong khi impls là một phần của gói bản đồ)
37 ObjectNode createObjectNode() - Lưu ý: kiểu trả về là đồng biến thể, vì tính trừu tượng của ObjectCodec cơ bản không thể tham chiếu đến các kiểu nút cụ thể (vì nó là một phần của gói lõi, trong khi impls là một phần của gói bản đồ)
38 protected ClassIntrospector defaultClassIntrospector() - Phương thức trợ giúp có thể ghi đè được sử dụng để tạo ClassIntros Inspector mặc định để sử dụng.
39 ObjectMapper disable(DeserializationFeature feature) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
40 ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
41 ObjectMapper disable(JsonGenerator.Feature... features) - Phương thức để vô hiệu hóa JsonGenerator.Features được chỉ định cho các cá thể phân tích cú pháp mà trình ánh xạ đối tượng này tạo ra.
42 ObjectMapper disable(JsonParser.Feature... features) - Phương thức để vô hiệu hóa JsonParser.Features được chỉ định cho các phiên bản phân tích cú pháp mà trình ánh xạ đối tượng này tạo ra.
43 ObjectMapper disable(MapperFeature... f) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
44 ObjectMapper disable(SerializationFeature f) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
45 ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
46 ObjectMapper disableDefaultTyping()- Phương pháp tắt tính năng tự động đưa thông tin loại; nếu vậy, chỉ những kiểu được chú thích rõ ràng (những kiểu có JsonTypeInfo) mới có thêm thông tin về kiểu nhúng.
47 ObjectMapper enable(DeserializationFeature feature) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
48 ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
49 ObjectMapper enable(JsonGenerator.Feature... features) - Phương thức cho phép JsonGenerator.Features được chỉ định cho các cá thể phân tích cú pháp mà trình ánh xạ đối tượng này tạo ra.
50 ObjectMapper enable(JsonParser.Feature... features) - Phương thức cho phép JsonParser.Features được chỉ định cho các cá thể phân tích cú pháp mà trình ánh xạ đối tượng này tạo ra.
51 ObjectMapper enable(MapperFeature... f) - Phương pháp cho phép các tính năng MapperConfig được chỉ định.
52 ObjectMapper enable(SerializationFeature f) - Phương pháp kích hoạt tính năng DeserializationConfig được chỉ định.
53 ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - Phương pháp cho phép các tính năng DeserializationConfig được chỉ định.
54 ObjectMapper enableDefaultTyping() - Phương thức tiện lợi tương đương với gọi điện
55 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - Phương thức tiện lợi tương đương với gọi điện
56 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - Phương pháp cho phép tự động bao gồm thông tin kiểu, cần thiết cho việc giải thích hợp lý các kiểu đa hình (trừ khi các kiểu đã được chú thích bằng JsonTypeInfo).
57 ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - Phương pháp cho phép tự động bao gồm thông tin loại - cần thiết để giải mã thích hợp các loại đa hình (trừ khi các loại đã được chú thích bằng JsonTypeInfo) - sử dụng cơ chế bao gồm "As.PROPERTY" và tên thuộc tính được chỉ định để sử dụng cho bao gồm (mặc định là "@ lớp "vì thông tin kiểu mặc định luôn sử dụng tên lớp làm định danh kiểu)
58 ObjectMapper findAndRegisterModules() - Phương thức tiện lợi có chức năng tương đương với: mapper.registerModules (mapper.findModules ());
59 Class<?> findMixInClassFor(Class<?> cls)
60 static List<Module> findModules() - Phương pháp định vị các phương thức có sẵn, sử dụng cơ sở JDK ServiceLoader, cùng với SPI do mô-đun cung cấp.
61 static List<Module> findModules(ClassLoader classLoader) - Phương pháp định vị các phương thức có sẵn, sử dụng cơ sở JDK ServiceLoader, cùng với SPI do mô-đun cung cấp.
62 DateFormat getDateFormat()
63 DeserializationConfig getDeserializationConfig() - Phương thức trả về đối tượng DeserializationConfig mặc định được chia sẻ xác định cài đặt cấu hình cho quá trình deserialization.
64 DeserializationContext getDeserializationContext() - Phương thức lấy DeserializationContext hiện tại.
65 JsonFactory getFactory() - Phương thức có thể được sử dụng để nắm giữ JsonFactory mà trình liên kết này sử dụng nếu nó cần tạo JsonParsers và / hoặc JsonGenerator.
66 InjectableValues getInjectableValues()
67 JsonFactory getJsonFactory()- Không được dùng nữa. Kể từ 2.1: Sử dụng getFactory () thay thế
68 JsonNodeFactory getNodeFactory() - Phương thức có thể được sử dụng để nắm giữ JsonNodeFactory mà trình ánh xạ này sẽ sử dụng khi trực tiếp xây dựng các cá thể JsonNode gốc cho Cây.
69 PropertyNamingStrategy getPropertyNamingStrategy()
70 SerializationConfig getSerializationConfig() - Phương thức trả về đối tượng SerializationConfig mặc định được chia sẻ xác định cài đặt cấu hình cho tuần tự hóa.
71 SerializerFactory getSerializerFactory() - Phương pháp nhận SerializerFactory hiện tại.
72 SerializerProvider getSerializerProvider() - Accessor cho thể hiện "blueprint" (hoặc, factory), từ đó các thể hiện được tạo bằng cách gọi DefaultSerializerProvider.createInstance (com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory).
73 SerializerProvider getSerializerProviderInstance() - Accessor để xây dựng và trả về một phiên bản SerializerProvider có thể được sử dụng để truy cập serializers.
74 SubtypeResolver getSubtypeResolver() - Phương pháp truy cập trình phân giải kiểu con đang được sử dụng.
75 TypeFactory getTypeFactory() - Accessor để nhận được phiên bản TypeFactory hiện được cấu hình.
76 VisibilityChecker<?> getVisibilityChecker()- Phương pháp truy cập trình kiểm tra khả năng hiển thị được cấu hình hiện tại; đối tượng được sử dụng để xác định xem phần tử thuộc tính đã cho (phương thức, trường, hàm tạo) có thể được tự động phát hiện hay không.
77 boolean isEnabled(DeserializationFeature f) - Phương pháp để kiểm tra xem đã bật tính năng cụ thể cho deserialization hay chưa.
78 boolean isEnabled(JsonFactory.Feature f) - Phương pháp tiện lợi, tương đương với:
79 boolean isEnabled(JsonGenerator.Feature f)
80 boolean isEnabled(JsonParser.Feature f)
81 boolean isEnabled(MapperFeature f) - Phương pháp kiểm tra xem MapperFeature đã cho có được kích hoạt hay không.
82 boolean isEnabled(SerializationFeature f) - Phương pháp để kiểm tra xem tính năng cụ thể về tuần tự hóa đã cho có được bật hay không.
83 int mixInCount()
84 ObjectReader reader() - Phương thức ban đầu để xây dựng ObjectReader với cài đặt mặc định.
85 ObjectReader reader(Base64Variant defaultBase64) - Phương thức gốc để xây dựng ObjectReader sẽ sử dụng biến thể mã hóa Base64 được chỉ định cho dữ liệu nhị phân được mã hóa Base64.
86 ObjectReader reader(Class<?> type)- Không được dùng nữa. Kể từ 2.5, sử dụng readerFor (Class) thay thế
87 ObjectReader reader(ContextAttributes attrs) - Phương thức Factory để xây dựng ObjectReader sẽ sử dụng các thuộc tính mặc định được chỉ định.
88 ObjectReader reader(DeserializationFeature feature) - Phương thức gốc để xây dựng ObjectReader với tính năng được chỉ định được kích hoạt (so với cài đặt mà cá thể ánh xạ này có).
89 ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - Phương thức ban đầu để xây dựng ObjectReader với các tính năng được chỉ định được kích hoạt (so với cài đặt mà cá thể ánh xạ này có).
90 ObjectReader reader(FormatSchema schema) - Phương thức Factory để xây dựng ObjectReader sẽ chuyển đối tượng lược đồ cụ thể đến JsonParser được sử dụng để đọc nội dung.
91 ObjectReader reader(InjectableValues injectableValues) - Phương thức nhà máy để xây dựng ObjectReader sẽ sử dụng các giá trị có thể tiêm được chỉ định.
92 ObjectReader reader(JavaType type)- Không được dùng nữa. Kể từ 2.5, hãy sử dụng readerFor (JavaType) để thay thế
93 ObjectReader reader(JsonNodeFactory f) - Phương thức Factory để xây dựng ObjectReader sẽ sử dụng JsonNodeFactory được chỉ định để xây dựng cây JSON.
94 ObjectReader reader(TypeReference<?> type)- Không được dùng nữa. Kể từ 2.5, sử dụng readerFor (TypeReference) thay thế
95 ObjectReader readerFor(Class<?> type) - Phương thức ban đầu để xây dựng ObjectReader sẽ đọc hoặc cập nhật các trường hợp của loại được chỉ định
96 ObjectReader readerFor(JavaType type) - Phương thức ban đầu để xây dựng ObjectReader sẽ đọc hoặc cập nhật các trường hợp của loại được chỉ định
97 ObjectReader readerFor(TypeReference<?> type) - Phương thức ban đầu để xây dựng ObjectReader sẽ đọc hoặc cập nhật các trường hợp của loại được chỉ định
98 ObjectReader readerForUpdating(Object valueToUpdate) - Phương thức nhà máy để xây dựng ObjectReader sẽ cập nhật Đối tượng đã cho (thường là Bean, nhưng cũng có thể là Bộ sưu tập hoặc Bản đồ, nhưng KHÔNG phải là một mảng) với dữ liệu JSON.
99 ObjectReader readerWithView(Class<?> view) - Phương thức gốc để xây dựng ObjectReader sẽ giải mã hóa các đối tượng bằng cách sử dụng JSON View (bộ lọc) được chỉ định.
100 JsonNode readTree(byte[] content) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
101 JsonNode readTree(File file) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
102 JsonNode readTree(InputStream in) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
103 <T extends TreeNode> T readTree(JsonParser p) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
104 JsonNode readTree(Reader r) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
105 JsonNode readTree(String content) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
106 JsonNode readTree(URL source) - Phương pháp giải mã nội dung JSON dưới dạng cây được thể hiện bằng cách sử dụng tập hợp các thể hiện JsonNode.
107 <T> T readValue(byte[] src, Class<T> valueType)
108 <T> T readValue(byte[] src, int offset, int len, Class<T> valueType)
109 <T> T readValue(byte[] src, int offset, int len, JavaType valueType)
110 <T> T readValue(byte[] src, int offset, int len, TypeReference valueTypeRef)
111 <T> T readValue(byte[] src, JavaType valueType)
112 <T> T readValue(byte[] src, TypeReference valueTypeRef)
113 <T> T readValue(DataInput src, Class<T> valueType)
114 <T> T readValue(DataInput src, JavaType valueType)
115 <T> T readValue(File src, Class<T> valueType) - Phương pháp giải mã hóa nội dung JSON từ tệp đã cho thành kiểu Java nhất định.
116 <T> T readValue(File src, JavaType valueType) - Phương pháp giải mã hóa nội dung JSON từ tệp đã cho thành kiểu Java nhất định.
117 <T> T readValue(File src, TypeReference valueTypeRef) - Phương pháp giải mã hóa nội dung JSON từ tệp đã cho thành kiểu Java nhất định.
118 <T> T readValue(InputStream src, Class<T> valueType)
119 <T> T readValue(InputStream src, JavaType valueType)
120 <T> T readValue(InputStream src, TypeReference valueTypeRef)
121 <T> T readValue(JsonParser p, Class<T> valueType) - Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).
122 <T> T readValue(JsonParser p, JavaType valueType) - Phương pháp nạp chồng kiểu an toàn, về cơ bản là bí danh cho readValue (JsonParser, Class).
123 <T> T readValue(JsonParser p, ResolvedType valueType) - Phương pháp giải mã hóa nội dung JSON thành một kiểu Java, tham chiếu đến được truyền dưới dạng đối số.
124 <T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - Phương pháp giải mã hóa nội dung JSON thành một kiểu Java, tham chiếu đến được truyền dưới dạng đối số.
125 <T> T readValue(Reader src, Class<T> valueType) -
1 <T> T readValue(Reader src, JavaType valueType)
126 <T> T readValue(Reader src, TypeReference valueTypeRef)
127 <T> T readValue(String content, Class<T> valueType) - Phương pháp giải mã nội dung JSON từ Chuỗi nội dung JSON đã cho.
128 <T> T readValue(String content, JavaType valueType) - Phương pháp giải mã nội dung JSON từ Chuỗi nội dung JSON đã cho.
129 <T> T readValue(String content, TypeReference valueTypeRef) - Phương pháp giải mã nội dung JSON từ Chuỗi nội dung JSON đã cho.
130 <T> T readValue(URL src, Class<T> valueType) - Phương pháp giải mã hóa nội dung JSON từ tài nguyên đã cho thành kiểu Java nhất định.
131 <T> T readValue(URL src, JavaType valueType)
132 <T> T readValue(URL src, TypeReference valueTypeRef) - Phương pháp giải mã hóa nội dung JSON từ tài nguyên đã cho thành kiểu Java nhất định.
133 <T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - Phương pháp tiện lợi, tương đương về chức năng:
134 <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - Phương pháp tiện lợi, tương đương về chức năng:
135 <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - Phương pháp tiện lợi, tương đương về chức năng:
136 <T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - Phương pháp đọc chuỗi đối tượng từ luồng phân tích cú pháp.
137 ObjectMapper registerModule(Module module)- Phương pháp đăng ký một mô-đun có thể mở rộng chức năng được cung cấp bởi trình ánh xạ này; ví dụ: bằng cách thêm các nhà cung cấp cho các bộ tuần tự hóa và bộ giải mã tùy chỉnh.
138 ObjectMapper registerModules(Iterable<Module> modules)- Phương pháp thuận tiện để đăng ký các mô-đun cụ thể theo thứ tự; về mặt chức năng tương đương với:
139 ObjectMapper registerModules(Module... modules)- Phương pháp thuận tiện để đăng ký các mô-đun cụ thể theo thứ tự; về mặt chức năng tương đương với:
140 void registerSubtypes(NamedType... types) - Phương thức đăng ký lớp được chỉ định làm kiểu con, để phân giải dựa trên tên kiểu có thể liên kết siêu kiểu với kiểu con (thay thế cho việc sử dụng chú thích).
141 ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - Phương pháp thiết lập AnnotationIntros Inspector được phiên bản ánh xạ này sử dụng cho cả tuần tự hóa và giải mã hóa.
142 ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - Phương pháp thay đổi các cá thể AnnotationIntros Inspector được sử dụng bởi cá thể ánh xạ này để tuần tự hóa và giải mã hóa, chỉ định chúng một cách riêng biệt để có thể sử dụng các bản xem xét khác nhau cho các khía cạnh khác nhau.
143 ObjectMapper setBase64Variant(Base64Variant v) - Phương thức sẽ cấu hình Base64Variant mặc định mà bộ tuần tự hóa và bộ giải mã byte [] sẽ sử dụng.
144 ObjectMapper setConfig(DeserializationConfig config) - Phương thức cho phép ghi đè đối tượng DeserializationConfig bên dưới.
145 ObjectMapper setConfig(SerializationConfig config) - Phương thức cho phép ghi đè đối tượng SerializationConfig bên dưới, chứa cài đặt cấu hình cụ thể cho tuần tự hóa.
146 ObjectMapper setDateFormat(DateFormat dateFormat) - Phương thức cấu hình DateFormat mặc định để sử dụng khi tuần tự hóa các giá trị thời gian dưới dạng Chuỗi và giải mã hóa từ Chuỗi JSON.
147 ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - Phương pháp chỉ định PrettyPrinter để sử dụng khi bật chế độ "in đẹp mặc định" (bằng cách bật SerializationFeature.INDENT_OUTPUT)
148 ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - Phương pháp cho phép tự động bao gồm thông tin loại, sử dụng đối tượng xử lý được chỉ định để xác định loại nào ảnh hưởng đến loại này, cũng như chi tiết về cách thông tin được nhúng.
149 ObjectMapper setFilterProvider(FilterProvider filterProvider) - Phương pháp định cấu hình trình ánh xạ này để sử dụng FilterProvider được chỉ định để ánh xạ Id bộ lọc với các phiên bản bộ lọc thực tế.
150 Object setHandlerInstantiator(HandlerInstantiator hi) - Phương pháp cấu hình HandlerInstantiator để sử dụng để tạo các phiên bản của trình xử lý (chẳng hạn như trình tuần tự, trình giải mã, trình phân giải id kiểu và kiểu), cho trước một lớp.
151 ObjectMapper setInjectableValues(InjectableValues injectableValues) - Phương thức để cấu hình InjectableValues ​​được sử dụng để tìm các giá trị để đưa vào.
152 ObjectMapper setLocale(Locale l) - Phương pháp ghi đè ngôn ngữ mặc định để sử dụng cho việc định dạng.
153 void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)- Không được dùng nữa. Kể từ 2,5: được thay thế bằng một hình thức lưu loát của phương pháp; setMixIns (java.util.Map <java.lang.Class <?>, java.lang.Class <? >>).
154 ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - Phương thức có thể được gọi để chỉ định trình phân giải đã cho để định vị các lớp trộn vào để sử dụng, ghi đè các ánh xạ được thêm trực tiếp.
155 ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - Phương thức sử dụng để xác định các chú thích kết hợp để sử dụng để bổ sung các chú thích mà các lớp có thể xử lý (có thể tuần tự hóa / có thể giải thích) có.
156 ObjectMapper setNodeFactory(JsonNodeFactory f) - Phương thức chỉ định JsonNodeFactory để sử dụng để xây dựng các nút cây cấp gốc (thông qua phương thức createObjectNode ()
157 ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - Phương pháp thiết lập chiến lược bao gồm thuộc tính POJO mặc định cho tuần tự hóa.
158 ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - Phương pháp thiết lập chiến lược đặt tên thuộc tính tùy chỉnh để sử dụng.
159 ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - Phương thức tiện lợi, tương đương với cách gọi:
160 ObjectMapper setSerializerFactory(SerializerFactory f) - Phương pháp thiết lập SerializerFactory cụ thể để sử dụng cho việc xây dựng các bộ tuần tự (bean).
161 ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - Phương pháp thiết lập phiên bản SerializerProvider "bản thiết kế" để sử dụng làm cơ sở cho các phiên bản nhà cung cấp thực tế sử dụng để xử lý bộ nhớ đệm của các phiên bản JsonSerializer.
162 ObjectMapper setSubtypeResolver(SubtypeResolver str) - Phương pháp thiết lập trình phân giải kiểu phụ tùy chỉnh để sử dụng.
163 ObjectMapper setTimeZone(TimeZone tz) - Phương pháp ghi đè TimeZone mặc định để sử dụng cho việc định dạng.
164 ObjectMapper setTypeFactory(TypeFactory f) - Phương thức có thể được sử dụng để ghi đè cá thể TypeFactory được sử dụng bởi trình ánh xạ này.
165 ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - Phương pháp tiện lợi cho phép thay đổi cấu hình cho các Công cụ kiểm tra khả năng hiển thị bên dưới, để thay đổi chi tiết về loại thuộc tính nào được tự động phát hiện.
166 ObjectMapper setVisibility(VisibilityChecker<?> vc) - Phương thức thiết lập VisibilityChecker hiện được định cấu hình, đối tượng được sử dụng để xác định xem phần tử thuộc tính đã cho (phương thức, trường, hàm tạo) có thể được tự động phát hiện hay không.
167 void setVisibilityChecker(VisibilityChecker<?> vc)- Không được dùng nữa. Kể từ 2.6 sử dụng setVisibility (VisibilityChecker) để thay thế.
168 JsonParser treeAsTokens(TreeNode n) - Phương pháp xây dựng JsonParser từ biểu diễn cây JSON.
169 <T> T treeToValue(TreeNode n, Class<T> valueType) - Phương thức chuyển đổi tiện lợi sẽ liên kết dữ liệu được cung cấp trên cây JSON thành kiểu giá trị cụ thể (thường là bean).
170 <T extends JsonNode> T valueToTree(Object fromValue)- Đảo ngược của treeToValue (com.fasterxml.jackson.core.TreeNode, java.lang.Class <T>); cho một giá trị (thường là bean), sẽ xây dựng biểu diễn Cây JSON tương đương.
171 Version version() - Phương thức sẽ trả về thông tin phiên bản được lưu trữ trong và đọc từ jar có chứa lớp này.
172 ObjectWriter writer() - Phương pháp thuận tiện để xây dựng ObjectWriter với cài đặt mặc định.
173 ObjectWriter writer(Base64Variant defaultBase64) - Phương thức ban đầu để xây dựng ObjectWriter sẽ sử dụng biến thể mã hóa Base64 được chỉ định cho dữ liệu nhị phân được mã hóa Base64.
174 ObjectWriter writer(CharacterEscapes escapes) -
175 ObjectWriter writer(ContextAttributes attrs) - Phương thức Factory để xây dựng ObjectWriter sẽ sử dụng các thuộc tính mặc định được chỉ định.
176 ObjectWriter writer(DateFormat df)- Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng DateFormat được chỉ định; hoặc, nếu null được chuyển, sử dụng dấu thời gian (số 64-bit.
177 ObjectWriter writer(FilterProvider filterProvider) - Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng nhà cung cấp bộ lọc được chỉ định.
178 ObjectWriter writer(FormatSchema schema) - Phương thức Factory để xây dựng ObjectWriter sẽ chuyển đối tượng lược đồ cụ thể đến JsonGenerator được sử dụng để viết nội dung.
179 ObjectWriter writer(PrettyPrinter pp) - Phương thức nhà máy để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng máy in đẹp được chỉ định để thụt lề (hoặc nếu null, không có máy in đẹp)
180 ObjectWriter writer(SerializationFeature feature) - Phương thức gốc để xây dựng ObjectWriter với tính năng được chỉ định được kích hoạt (so với cài đặt mà cá thể ánh xạ này có).
181 ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - Phương thức ban đầu để xây dựng ObjectWriter với các tính năng cụ thể được kích hoạt (so với cài đặt mà cá thể ánh xạ này có).
182 ObjectWriter writerFor(Class<?> rootType) - Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng kiểu gốc được chỉ định, thay vì kiểu thời gian chạy thực tế của giá trị.
183 ObjectWriter writerFor(JavaType rootType) - Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng kiểu gốc được chỉ định, thay vì kiểu thời gian chạy thực tế của giá trị.
184 ObjectWriter writerFor(TypeReference<?> rootType) - Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng kiểu gốc được chỉ định, thay vì kiểu thời gian chạy thực tế của giá trị.
185 ObjectWriter writerWithDefaultPrettyPrinter() - Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng máy in đẹp mặc định để thụt lề.
186 ObjectWriter writerWithType(Class<?> rootType)- Không được dùng nữa. Kể từ 2.5, hãy sử dụng writeFor (Class) để thay thế.
187 ObjectWriter writerWithType(JavaType rootType)- Không được dùng nữa. Kể từ phiên bản 2.5, hãy sử dụng writeFor (JavaType) để thay thế.
188 ObjectWriter writerWithType(TypeReference<?> rootType)- Không được dùng nữa. Kể từ 2.5, hãy sử dụng writeFor (TypeReference) để thay thế.
189 ObjectWriter writerWithView(Class<?> serializationView) - Phương thức Factory để xây dựng ObjectWriter sẽ tuần tự hóa các đối tượng bằng cách sử dụng JSON View (bộ lọc) được chỉ định.
190 void writeTree(JsonGenerator jgen, JsonNode rootNode) - Phương pháp tuần tự hóa Cây JSON đã cho, sử dụng trình tạo được cung cấp.
191 void writeTree(JsonGenerator jgen, TreeNode rootNode)
192 void writeValue(DataOutput out, Object value)
193 void writeValue(File resultFile, Object value) - Phương thức có thể được sử dụng để tuần tự hóa bất kỳ giá trị Java nào dưới dạng đầu ra JSON, được ghi vào Tệp được cung cấp.
194 void writeValue(JsonGenerator g, Object value) - Phương thức có thể được sử dụng để tuần tự hóa bất kỳ giá trị Java nào dưới dạng đầu ra JSON, sử dụng JsonGenerator được cung cấp.
195 void writeValue(OutputStream out, Object value) - Phương pháp có thể được sử dụng để tuần tự hóa bất kỳ giá trị Java nào dưới dạng đầu ra JSON, sử dụng luồng đầu ra được cung cấp (sử dụng mã hóa JsonEncoding.UTF8).
196 void writeValue(Writer w, Object value) - Phương thức có thể được sử dụng để tuần tự hóa bất kỳ giá trị Java nào dưới dạng đầu ra JSON, sử dụng Writer được cung cấp.
197 byte[] writeValueAsBytes(Object value) - Phương thức có thể được sử dụng để tuần tự hóa bất kỳ giá trị Java nào dưới dạng một mảng byte.
198 String writeValueAsString(Object value) - Phương thức có thể được sử dụng để tuần tự hóa bất kỳ giá trị Java nào dưới dạng Chuỗi.

Các phương thức kế thừa

Lớp này kế thừa các phương thức từ các lớp sau:

  • java.lang.Object

Ví dụ về ObjectMapper

Tạo chương trình java sau bằng bất kỳ trình soạn thảo nào bạn chọn C:/> Jackson_WORKSPACE

Tệp: JacksonTester.java

import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Verify the result

Biên dịch các lớp bằng cách sử dụng javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

Object Serialization

let's serialize a java object to a json file and then read that json file to get the object back. In this example, we've created Student class. We'll create a student.json file which will have a json representation of Student object.

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         Student student = new Student();
         student.setAge(10);
         student.setName("Mahesh");
         tester.writeJSON(student);

         Student student1 = tester.readJSON();
         System.out.println(student1);

      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void writeJSON(Student student) throws JsonGenerationException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), student);
   }

   private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();
      Student student = mapper.readValue(new File("student.json"), Student.class);
      return student;
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Student [ name: Mahesh, age: 10 ]

Data Binding

Data Binding API is used to convert JSON to and from POJO (Plain Old Java Object) using property accessor or using annotations. It is of two type.

  • Simple Data Binding - Converts JSON to and from Java Maps, Lists, Strings, Numbers, Booleans and null objects.

  • Full Data Binding - Converts JSON to and from any JAVA type.

ObjectMapper reads/writes JSON for both types of data bindings. Data Binding is most convenient way and is analogus to JAXB parer for XML.

Simple Data Binding

Simple data binding refers to mapping of JSON to JAVA Core data types. Following table illustrates the relationship between JSON types vs Java Types.

Sr. No. JSON Type Java Type
1 object LinkedHashMap<String,Object>
2 array ArrayList<Object>
3 string String
4 complete number Integer, Long or BigInteger
5 fractional number Double / BigDecimal
6 true | false Boolean
7 null null

Let's see simple data binding in action. Here we'll map JAVA basic types directly to JSON and vice versa.

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
         try {
            ObjectMapper mapper = new ObjectMapper();

            Map<String,Object> studentDataMap = new HashMap<String,Object>(); 
            int[] marks = {1,2,3};

            Student student = new Student();
            student.setAge(10);
            student.setName("Mahesh");
            // JAVA Object
            studentDataMap.put("student", student);
            // JAVA String
            studentDataMap.put("name", "Mahesh Kumar");   		
            // JAVA Boolean
            studentDataMap.put("verified", Boolean.FALSE);
            // Array
            studentDataMap.put("marks", marks);

            mapper.writeValue(new File("student.json"), studentDataMap);
            //result student.json
			//{ 
            //   "student":{"name":"Mahesh","age":10},
            //   "marks":[1,2,3],
            //   "verified":false,
            //   "name":"Mahesh Kumar"
            //}
            studentDataMap = mapper.readValue(new File("student.json"), Map.class);

            System.out.println(studentDataMap.get("student"));
            System.out.println(studentDataMap.get("name"));
            System.out.println(studentDataMap.get("verified"));
            System.out.println(studentDataMap.get("marks"));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
            e.printStackTrace();
      }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

{name=Mahesh, age=10}
Mahesh Kumar
false
[1, 2, 3]

Full Data Binding

Full data binding refers to mapping of JSON to any JAVA Object.

//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();	
//map JSON content to Student object
Student student = mapper.readValue(new File("student.json"), Student.class);
//map Student object to JSON content
mapper.writeValue(new File("student.json"), student);

Let's see simple data binding in action. Here we'll map JAVA Object directly to JSON and vice versa.

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         Student student = new Student();
         student.setAge(10);
         student.setName("Mahesh");
         tester.writeJSON(student);

         Student student1 = tester.readJSON();
         System.out.println(student1);

      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void writeJSON(Student student) throws JsonGenerationException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), student);
   }

   private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();
      Student student = mapper.readValue(new File("student.json"), Student.class);
      return student;
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Student [ name: Mahesh, age: 10 ]

Data Binding with Generics

In simple data binding, we've used Map class which use String as key and Object as a value object. Instead we can have concrete java object and type cast it to be used in JSON binding.

Consider the following example with a class UserData, a class to hold user specific data.

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
         try {
            ObjectMapper mapper = new ObjectMapper();

            Map<String, UserData> userDataMap = new HashMap<String, UserData>();
            UserData studentData = new UserData(); 
            int[] marks = {1,2,3};

            Student student = new Student();
            student.setAge(10);
            student.setName("Mahesh");
            // JAVA Object
            studentData.setStudent(student);
            // JAVA String
            studentData.setName("Mahesh Kumar");
            // JAVA Boolean
            studentData.setVerified(Boolean.FALSE);
            // Array
            studentData.setMarks(marks);
            TypeReference ref = new TypeReference<Map<String,UserData>>() { };
            userDataMap.put("studentData1", studentData);
            mapper.writeValue(new File("student.json"), userDataMap);
            //{
            //   "studentData1":
            //	 {
            //		"student":
            //		{
            //			"name":"Mahesh",
            //			"age":10
            //      },
            //      "name":"Mahesh Kumar",
            //      "verified":false,
            //      "marks":[1,2,3]
            //   }
            //}
            userDataMap = mapper.readValue(new File("student.json"), ref);

            System.out.println(userDataMap.get("studentData1").getStudent());
            System.out.println(userDataMap.get("studentData1").getName());
            System.out.println(userDataMap.get("studentData1").getVerified());
            System.out.println(Arrays.toString(userDataMap.get("studentData1").getMarks()));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
            e.printStackTrace();
      }
   }
}

class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

class UserData {
   private Student student;
   private String name;
   private Boolean verified;
   private int[] marks;

   public UserData(){}

   public Student getStudent() {
      return student;
   }
   public void setStudent(Student student) {
      this.student = student;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public Boolean getVerified() {
      return verified;
   }
   public void setVerified(Boolean verified) {
      this.verified = verified;
   }
   public int[] getMarks() {
      return marks;
   }
   public void setMarks(int[] marks) {
      this.marks = marks;
   }		
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Student [ name: Mahesh, age: 10 ]
Mahesh Kumar
false
[1, 2, 3]

Tree Model

Tree Model prepares a in-memory tree representation of the JSON document. ObjectMapper build tree of JsonNode nodes. It is most flexible approach. It is analogus to DOM parser for XML.

Create Tree from JSON

ObjectMapper provides a pointer to root node of the tree after reading the JSON. Root Node can be used to traverse the complete tree. Consider the following code snippet to get the root node of a provided JSON String.

//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();	
String jsonString = "{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonNode rootNode = mapper.readTree(jsonString);

Traversing Tree Model

Get each node using relative path to the root node while traversing tree and process the data. Consider the following code snippet traversing the tree provided the root node.

JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.textValue());
 
JsonNode marksNode = rootNode.path("marks");
Iterator<JsonNode> iterator = marksNode.elements();

Example

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.IOException;
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"name\":\"Mahesh Kumar\",  \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
         JsonNode rootNode = mapper.readTree(jsonString);

         JsonNode nameNode = rootNode.path("name");
         System.out.println("Name: "+ nameNode.textValue());

         JsonNode ageNode = rootNode.path("age");
         System.out.println("Age: " + ageNode.intValue());

         JsonNode verifiedNode = rootNode.path("verified");
         System.out.println("Verified: " + (verifiedNode.booleanValue() ? "Yes":"No"));

         JsonNode marksNode = rootNode.path("marks");
         Iterator<JsonNode> iterator = marksNode.elements();
         System.out.print("Marks: [ ");

         while (iterator.hasNext()) {
            JsonNode marks = iterator.next();
            System.out.print(marks.intValue() + " "); 
         }

         System.out.println("]");
      }
      catch (JsonParseException e) { e.printStackTrace(); }
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Tree to JSON

In this example, we've created a Tree using JsonNode and write it to a json file and read back.

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.IOException;
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"name\":\"Mahesh Kumar\",  \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
         JsonNode rootNode = mapper.readTree(jsonString);

         JsonNode nameNode = rootNode.path("name");
         System.out.println("Name: "+ nameNode.textValue());

         JsonNode ageNode = rootNode.path("age");
         System.out.println("Age: " + ageNode.intValue());

         JsonNode verifiedNode = rootNode.path("verified");
         System.out.println("Verified: " + (verifiedNode.booleanValue() ? "Yes":"No"));

         JsonNode marksNode = rootNode.path("marks");
         Iterator<JsonNode> iterator = marksNode.elements();
         System.out.print("Marks: [ ");

         while (iterator.hasNext()) {
            JsonNode marks = iterator.next();
            System.out.print(marks.intValue() + " "); 
         }

         System.out.println("]");
      }
      catch (JsonParseException e) { e.printStackTrace(); }
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Tree to Java Objects

In this example, we've created a Tree using JsonNode and write it to a json file and read back tree and then convert it as a Student object.

Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         ObjectMapper mapper = new ObjectMapper();

         JsonNode rootNode = mapper.createObjectNode();
         JsonNode marksNode = mapper.createArrayNode();
         ((ArrayNode)marksNode).add(100);
         ((ArrayNode)marksNode).add(90);
         ((ArrayNode)marksNode).add(85);
         ((ObjectNode) rootNode).put("name", "Mahesh Kumar");
         ((ObjectNode) rootNode).put("age", 21);
         ((ObjectNode) rootNode).put("verified", false);
         ((ObjectNode) rootNode).put("marks",marksNode);

         mapper.writeValue(new File("student.json"), rootNode);

         rootNode = mapper.readTree(new File("student.json"));

         Student student = mapper.treeToValue(rootNode, Student.class);

         System.out.println("Name: "+ student.getName());
         System.out.println("Age: " + student.getAge());
         System.out.println("Verified: " + (student.isVerified() ? "Yes":"No"));
         System.out.println("Marks: "+Arrays.toString(student.getMarks()));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}
class Student {
   String name;
   int age;
   boolean verified;
   int[] marks;
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public boolean isVerified() {
      return verified;
   }
   public void setVerified(boolean verified) {
      this.verified = verified;
   }
   public int[] getMarks() {
      return marks;
   }
   public void setMarks(int[] marks) {
      this.marks = marks;
   }
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Streaming API

Streaming API reads and writes JSON content as discrete events. JsonParser reads the data whereas JsonGenerator writes the data. It is most powerful approach among the three and is of lowest overhead and fastest in read/write opreations. It is Analogus to Stax parser for XML.

In this Article, we'll showcase using Jackson streaming APIs to read and write JSON data. Streaming API works with concept of token and every details of Json is to be handle carefuly. Following are two class which we'll use in the examples:

  • JsonGenerator - Write to JSON String.

  • JsonParser - Parse JSON String.

Writing JSON using JsonGenerator

Using JsonGenerator is pretty simple. First create the JsonGenerator using JsonFactory.createJsonGenerator() method and use it's write***() methods to write each json value.

JsonFactory jsonFactory = new JsonFactory();
JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
   "student.json"), JsonEncoding.UTF8);
// {
jsonGenerator.writeStartObject();
// "name" : "Mahesh Kumar"
jsonGenerator.writeStringField("name", "Mahesh Kumar");

Let's see JsonGenerator in action. Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Map;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {         
         JsonFactory jsonFactory = new JsonFactory();
         JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File("student.json"), JsonEncoding.UTF8);

         jsonGenerator.writeStartObject();

         // "name" : "Mahesh Kumar"
         jsonGenerator.writeStringField("name", "Mahesh Kumar"); 

         // "age" : 21
         jsonGenerator.writeNumberField("age", 21);

         // "verified" : false
         jsonGenerator.writeBooleanField("verified", false);

         // "marks" : [100, 90, 85]
         jsonGenerator.writeFieldName("marks"); 

         // [
         jsonGenerator.writeStartArray(); 
         // 100, 90, 85
         jsonGenerator.writeNumber(100); 
         jsonGenerator.writeNumber(90); 
         jsonGenerator.writeNumber(85); 
         // ]

         jsonGenerator.writeEndArray(); 

         jsonGenerator.writeEndObject(); 
         jsonGenerator.close();        

         //result student.json
         //{ 
         //   "name":"Mahesh Kumar",
         //   "age":21,
         //   "verified":false,
         //   "marks":[100,90,85]
         //}

         ObjectMapper mapper = new ObjectMapper();
         Map<String,Object> dataMap = mapper.readValue(new File("student.json"), Map.class);

         System.out.println(dataMap.get("name"));
         System.out.println(dataMap.get("age"));
         System.out.println(dataMap.get("verified"));
         System.out.println(dataMap.get("marks"));
      } 
      catch (JsonParseException e) { e.printStackTrace(); } 
      catch (JsonMappingException e) { e.printStackTrace(); } 
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Mahesh Kumar
21
false
[100, 90, 85]

Reading JSON using JsonParser

Using JsonParser is again pretty simple. First create the JsonParser using JsonFactory.createJsonParser() method and use it's nextToken() methods to read each json string as token. Check each token and process accordingly

JsonFactory jasonFactory = new JsonFactory();
JsonParser jsonParser = jasonFactory.createJsonParser(new File("student.json"));
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
   //get the current token
   String fieldname = jsonParser.getCurrentName();
   if ("name".equals(fieldname)) {
      //move to next token
      jsonParser.nextToken();
      System.out.println(jsonParser.getText());        	 
   }
}

Let's see JsonParser in action. Create a java class file named JacksonTester in C:\>Jackson_WORKSPACE.

File: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Map;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {        	
         JsonFactory jsonFactory = new JsonFactory();

         JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
            "student.json"), JsonEncoding.UTF8);
         jsonGenerator.writeStartObject();
         jsonGenerator.writeStringField("name", "Mahesh Kumar"); 
         jsonGenerator.writeNumberField("age", 21);
         jsonGenerator.writeBooleanField("verified", false); 
         jsonGenerator.writeFieldName("marks"); 
         jsonGenerator.writeStartArray(); // [
         jsonGenerator.writeNumber(100); 
         jsonGenerator.writeNumber(90); 
         jsonGenerator.writeNumber(85); 
         jsonGenerator.writeEndArray(); 
         jsonGenerator.writeEndObject(); 
         jsonGenerator.close();       	 

         //result student.json
         //{ 
         //   "name":"Mahesh Kumar",
         //   "age":21,
         //   "verified":false,
         //   "marks":[100,90,85]
         //}

         JsonParser jsonParser = jsonFactory.createParser(new File("student.json"));
         while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            //get the current token
            String fieldname = jsonParser.getCurrentName();
            if ("name".equals(fieldname)) {
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getText());        	 
            }
            if("age".equals(fieldname)){
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getNumberValue());        	 
            }
            if("verified".equals(fieldname)){
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getBooleanValue());        	 
            }
            if("marks".equals(fieldname)){
               //move to [ 
               jsonParser.nextToken();
               // loop till token equal to "]"
               while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
                  System.out.println(jsonParser.getNumberValue()); 
               }
            }
         }
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Verify the result

Compile the classes using javac compiler as follows:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Now run the jacksonTester to see the result:

C:\Jackson_WORKSPACE>java JacksonTester

Verify the Output

Mahesh Kumar
21
false
[100, 90, 85]

JsonGenerator Class

Introduction

JsonParser is the base class to define public API for reading Json content. Instances are created using factory methods of a JsonFactory instance.

Class declaration

Following is the declaration for org.codehaus.jackson.JsonParser class:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Nested Classes

S.N. Class & Description
1 static class JsonParser.Feature
Enumeration that defines all togglable features for parsers.
2 static class JsonParser.NumberType
Enumeration of possible "native" (optimal) types that can be used for numbers.

Fields

  • protected PrettyPrinter _cfgPrettyPrinter - Object that handles pretty-printing (usually additional white space to make results more human-readable) during output.

  • protected JsonToken _currToken - Last token retrieved via nextToken(), if any.

  • protected int _features - Bit flag composed of bits that indicate which JsonParser.Features are enabled.

  • protected JsonToken _lastClearedToken - Last cleared token, if any: that is, value that was in effect when clearCurrentToken() was called.

Constructors

S.N. Constructor & Description
1 protected JsonParser()
Default constructor
2 protected JsonParser(int features)

Class Methods

S.N. Method & Description
1 protected void _reportError(String msg) - Helper method used for constructing and throwing JsonGenerationException with given base message.
2 protected void _reportUnsupportedOperation()
3 protected void _throwInternal()
4 protected void _writeSimpleObject(Object value)- Helper method to try to call appropriate write method for given untyped Object.
5 boolean canOmitFields() - Introspection method to call to check whether it is ok to omit writing of Object fields or not.
6 boolean canUseSchema(FormatSchema schema) - Method that can be used to verify that given schema can be used with this generator (using setSchema(com.fasterxml.jackson.core.FormatSchema)).
7 boolean canWriteBinaryNatively() - Introspection method that may be called to see if the underlying data format supports "native" binary data; that is, an efficient output of binary content without encoding.
8 boolean canWriteObjectId() - Introspection method that may be called to see if the underlying data format supports some kind of Object Ids natively (many do not; for example, JSON doesn't).
9 boolean canWriteTypeId() - Introspection method that may be called to see if the underlying data format supports some kind of Type Ids natively (many do not; for example, JSON doesn't).
10 abstract void close() - Method called to close this generator, so that no more content can be written.
11 JsonGenerator configure(JsonGenerator.Feature f, boolean state) - Method for enabling or disabling specified feature: check JsonGenerator.Feature for list of available features.
12 void copyCurrentEvent(JsonParser jp) - Method for copying contents of the current event that the given parser instance points to.
13 void copyCurrentStructure(JsonParser jp) - Method for copying contents of the current event and following events that it encloses the given parser instance points to.
14 abstract JsonGenerator disable(JsonGenerator.Feature f) - Method for disabling specified features (check JsonGenerator.Feature for list of features)
15 abstract JsonGenerator enable(JsonGenerator.Feature f) - Method for enabling specified parser features: check JsonGenerator.Feature for list of available features.
16 abstract void flush() - Method called to flush any buffered content to the underlying target (output stream, writer), and to flush the target itself as well.
17 CharacterEscapes getCharacterEscapes() - Method for accessing custom escapes factory uses for JsonGenerators it creates.
18 abstract ObjectCodec getCodec() - Method for accessing the object used for writing Java object as Json content (using method writeObject(java.lang.Object)).
19 abstract int getFeatureMask() - Bulk access method for getting state of all standard JsonGenerator.Features.
20 int getHighestEscapedChar() - Accessor method for testing what is the highest unescaped character configured for this generator.
21 abstract JsonStreamContext getOutputContext()
22 Object getOutputTarget()- Method that can be used to get access to object that is used as target for generated output; this is usually either OutputStream or Writer, depending on what generator was constructed with.
23 PrettyPrinter getPrettyPrinter()- Accessor for checking whether this generator has a configured PrettyPrinter; returns it if so, null if none configured.
24 FormatSchema getSchema() - Method for accessing Schema that this parser uses, if any.
25 abstract boolean isClosed() - Method that can be called to determine whether this generator is closed or not.
26 abstract boolean isEnabled(JsonGenerator.Feature f) - Method for checking whether given feature is enabled.
27 JsonGenerator setCharacterEscapes(CharacterEscapes esc)-Method for defining custom escapes factory uses for JsonGenerators it creates.
28 abstract JsonGenerator setCodec(ObjectCodec oc)- Method that can be called to set or reset the object to use for writing Java objects as JsonContent (using method writeObject(java.lang.Object)).
29 abstract JsonGenerator setFeatureMask(int mask)-Bulk set method for (re)settting states of all standard JsonGenerator.Features
30 JsonGenerator setHighestNonEscapedChar(int charCode) - Method that can be called to request that generator escapes all character codes above specified code point (if positive value); or, to not escape any characters except for ones that must be escaped for the data format (if -1).
31 JsonGenerator setPrettyPrinter(PrettyPrinter pp) - Method for setting a custom pretty printer, which is usually used to add indentation for improved human readability.
32 JsonGenerator setRootValueSeparator(SerializableString sep) - Method that allows overriding String used for separating root-level JSON values (default is single space character)
33 void setSchema(FormatSchema schema) - Method to call to make this generator use specified schema.
33 abstract JsonGenerator useDefaultPrettyPrinter()- Convenience method for enabling pretty-printing using the default pretty printer (DefaultPrettyPrinter).
34 abstract Version version()- Accessor for finding out version of the bundle that provided this generator instance.
35 void writeArrayFieldStart(String fieldName)- Convenience method for outputting a field entry ("member") (that will contain a JSON Array value), and the START_ARRAY marker.
36 abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- Method that will output given chunk of binary data as base64 encoded, as a complete String value (surrounded by double quotes).
37 abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - Method similar to writeBinary(Base64Variant,byte[],int,int), but where input is provided through a stream, allowing for incremental writes without holding the whole input in memory.
38 void writeBinary(byte[] data)- Similar to writeBinary(Base64Variant,byte[],int,int), but assumes default to using the Jackson default Base64 variant (which is Base64Variants.MIME_NO_LINEFEEDS).
39 void writeBinary(byte[] data, int offset, int len) - Similar to writeBinary(Base64Variant,byte[],int,int), but default to using the Jackson default Base64 variant (which is Base64Variants.MIME_NO_LINEFEEDS).
40 int writeBinary(InputStream data, int dataLength) - Similar to writeBinary(Base64Variant,InputStream,int), but assumes default to using the Jackson default Base64 variant (which is Base64Variants.MIME_NO_LINEFEEDS).
41 void writeBinaryField(String fieldName, byte[] data) - Convenience method for outputting a field entry ("member") that contains specified data in base64-encoded form.
42 abstract void writeBoolean(boolean state) - Method for outputting literal Json boolean value (one of Strings 'true' and 'false').
43 void writeBooleanField(String fieldName, boolean value) - Convenience method for outputting a field entry ("member") that has a boolean value.
44 abstract void writeEndArray() - Method for writing closing marker of a JSON Array value (character ']'; plus possible white space decoration if pretty-printing is enabled).
45 abstract void writeEndObject() - Method for writing closing marker of a JSON Object value (character '}'; plus possible white space decoration if pretty-printing is enabled).
46 abstract void writeFieldName(SerializableString name) - Method similar to writeFieldName(String), main difference being that it may perform better as some of processing (such as quoting of certain characters, or encoding into external encoding if supported by generator) can be done just once and reused for later calls.
47 abstract void writeFieldName(String name) - Method for writing a field name (JSON String surrounded by double quotes: syntactically identical to a JSON String value), possibly decorated by white space if pretty-printing is enabled.
48 abstract void writeNull() - Method for outputting literal Json null value.
49 void writeNullField(String fieldName) - Convenience method for outputting a field entry ("member") that has JSON literal value null.
50 abstract void writeNumber(BigDecimal dec) - Method for outputting indicate Json numeric value.
51 abstract void writeNumber(BigInteger v) - Method for outputting given value as Json number.
52 abstract void writeNumber(double d) - Method for outputting indicate Json numeric value.
53 abstract void writeNumber(float f) - Method for outputting indicate Json numeric value.
54 abstract void writeNumber(int v) - Method for outputting given value as Json number.
55 abstract void writeNumber(long v) - Method for outputting given value as Json number.
56 void writeNumber(short v) - Method for outputting given value as Json number.
57 abstract void writeNumber(String encodedValue) - Write method that can be used for custom numeric types that can not be (easily?) converted to "standard" Java number types.
58 void writeNumberField(String fieldName, BigDecimal value) - Convenience method for outputting a field entry ("member") that has the specified numeric value.
59 void writeNumberField(String fieldName, double value) - Convenience method for outputting a field entry ("member") that has the specified numeric value.
60 void writeNumberField(String fieldName, float value) - Convenience method for outputting a field entry ("member") that has the specified numeric value.
61 void writeNumberField(String fieldName, int value) - Convenience method for outputting a field entry ("member") that has the specified numeric value.
62 void writeNumberField(String fieldName, long value) - Convenience method for outputting a field entry ("member") that has the specified numeric value.
63 abstract void writeObject(Object pojo) - Method for writing given Java object (POJO) as Json.
64 void writeObjectField(String fieldName, Object pojo) - Convenience method for outputting a field entry ("member") that has contents of specific Java object as its value.
65 void writeObjectFieldStart(String fieldName) - Convenience method for outputting a field entry ("member") (that will contain a JSON Object value), and the START_OBJECT marker.
66 void writeObjectId(Object id) - Method that can be called to output so-called native Object Id.
67 void writeObjectRef(Object id) - Method that can be called to output references to native Object Ids.
68 void writeOmittedField(String fieldName) Method called to indicate that a property in this position was skipped.
69 abstract void writeRaw(char c) - Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).
70 abstract void writeRaw(char[] text, int offset, int len) - Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).
71 void writeRaw(SerializableString raw) - Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).
72 abstract void writeRaw(String text) - Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).
73 abstract void writeRaw(String text, int offset, int len) - Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).
74 abstract void writeRawUTF8String(byte[] text, int offset, int length) - Method similar to writeString(String) but that takes as its input a UTF-8 encoded String that is to be output as-is, without additional escaping (type of which depends on data format; backslashes for JSON).
75 abstract void writeRawValue(char[] text, int offset, int len)
76 abstract void writeRawValue(String text)- Method that will force generator to copy input text verbatim without any modifications, but assuming it must constitute a single legal JSON value (number, string, boolean, null, Array or List).
77 abstract void writeRawValue(String text, int offset, int len)
78 abstract void writeStartArray()- Method for writing starting marker of a JSON Array value (character '['; plus possible white space decoration if pretty-printing is enabled).
79 abstract void writeStartObject() - Method for writing starting marker of a JSON Object value (character '{'; plus possible white space decoration if pretty-printing is enabled).
80 abstract void writeString(char[] text, int offset, int len) - Method for outputting a String value.
81 abstract void writeString(SerializableString text) - Method similar to writeString(String), but that takes SerializableString which can make this potentially more efficient to call as generator may be able to reuse quoted and/or encoded representation.
82 abstract void writeString(String text) - Method for outputting a String value.
83 void writeStringField(String fieldName, String value) - Convenience method for outputting a field entry ("member") that has a String value.
84 abstract void writeTree(TreeNode rootNode) - Method for writing given JSON tree (expressed as a tree where given JsonNode is the root) using this generator.
85 void writeTypeId(Object id) - Method that can be called to output so-called native Type Id.
86 abstract void writeUTF8String(byte[] text, int offset, int length) - Method similar to writeString(String) but that takes as its input a UTF-8 encoded String which has not been escaped using whatever escaping scheme data format requires (for JSON that is backslash-escaping for control characters and double-quotes; for other formats something else).

Methods inherited

This class inherits methods from the following classes:

  • java.lang.Object

JsonParser Class

Introduction

JsonParser is the base class to define public API for reading Json content. Instances are created using factory methods of a JsonFactory instance.

Class declaration

Following is the declaration for com.fasterxml.jackson.core.JsonParser class:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Nested Classes

S.N. Class & Description
1 static class JsonParser.Feature
Enumeration that defines all togglable features for parsers.
2 static class JsonParser.NumberType
Enumeration of possible "native" (optimal) types that can be used for numbers.

Fields

  • protected int _features - Bit flag composed of bits that indicate which JsonParser.Features are enabled.

Constructors

S.N. Constructor & Description
1 protected JsonParser()
Default constructor
2 protected JsonParser(int features)

Class Methods

S.N. Method & Description
1 protected JsonParseException _constructError(String msg) - Helper method for constructing JsonParseExceptions based on current state of the parser.
2 protected void _reportUnsupportedOperation() - Helper method to call for operations that are not supported by parser implementation.
3 boolean canReadObjectId() - Introspection method that may be called to see if the underlying data format supports some kind of Object Ids natively (many do not; for example, JSON doesn't).
4 boolean canReadTypeId() - Introspection method that may be called to see if the underlying data format supports some kind of Type Ids natively (many do not; for example, JSON doesn't).
5 boolean canUseSchema(FormatSchema schema) - Method that can be used to verify that given schema can be used with this parser (using setSchema(com.fasterxml.jackson.core.FormatSchema)).
6 abstract void clearCurrentToken() - Method called to "consume" the current token by effectively removing it so that hasCurrentToken() returns false, and getCurrentToken() null).
7 abstract void close() - Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature JsonParser.Feature.AUTO_CLOSE_SOURCE is enabled.
8 JsonParser configure(JsonParser.Feature f, boolean state) - Method for enabling or disabling specified feature (check JsonParser.Feature for list of features)
9 JsonParser disable(JsonParser.Feature f) - Method for disabling specified feature (check JsonParser.Feature for list of features)
10 JsonParser enable(JsonParser.Feature f) - Method for enabling specified parser feature (check JsonParser.Feature for list of features)
11 abstract BigInteger getBigIntegerValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can not be used as a Java long primitive type due to its magnitude.
12 byte[] getBinaryValue() - Convenience alternative to getBinaryValue(Base64Variant) that defaults to using Base64Variants.getDefaultVariant() as the default encoding.
13 abstract byte[] getBinaryValue(Base64Variant b64variant) - Method that can be used to read (and consume -- results may not be accessible using other methods after the call) base64-encoded binary data included in the current textual JSON value.
14 boolean getBooleanValue() - Convenience accessor that can be called when the current token is JsonToken.VALUE_TRUE or JsonToken.VALUE_FALSE.
15 byte getByteValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java byte primitive type.
16 abstract ObjectCodec getCodec() - Accessor for ObjectCodec associated with this parser, if any.
17 abstract JsonLocation getCurrentLocation() - Method that returns location of the last processed character; usually for error reporting purposes.
18 abstract String getCurrentName() - Method that can be called to get the name associated with the current token: for JsonToken.FIELD_NAMEs it will be the same as what getText() returns; for field values it will be preceding field name; and for others (array values, root-level values) null.
19 abstract JsonToken getCurrentToken() - Accessor to find which token parser currently points to, if any; null will be returned if none.
20 abstract int getCurrentTokenId() - Method similar to getCurrentToken() but that returns an int instead of JsonToken (enum value).
21 abstract BigDecimal getDecimalValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_FLOAT or JsonToken.VALUE_NUMBER_INT.
22 abstract double getDoubleValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_FLOAT and it can be expressed as a Java double primitive type.
23 abstract Object getEmbeddedObject() - Accessor that can be called if (and only if) the current token is JsonToken.VALUE_EMBEDDED_OBJECT.
24 int getFeatureMask() - Bulk access method for getting state of all standard JsonParser.Features.
25 abstract float getFloatValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_FLOAT and it can be expressed as a Java float primitive type.
26 Object getInputSource() - Method that can be used to get access to object that is used to access input being parsed; this is usually either InputStream or Reader, depending on what parser was constructed with.
27 abstract int getIntValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java int primitive type.
28 abstract JsonToken getLastClearedToken() - Method that can be called to get the last token that was cleared using clearCurrentToken().
29 abstract long getLongValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a Java long primitive type.
30 abstract JsonParser.NumberType getNumberType() - If current token is of type JsonToken.VALUE_NUMBER_INT or JsonToken.VALUE_NUMBER_FLOAT, returns one of JsonParser.NumberType constants; otherwise returns null.
31 abstract Number getNumberValue() - Generic number value accessor method that will work for all kinds of numeric values.
32 Object getObjectId() - Method that can be called to check whether current token (one that was just read) has an associated Object id, and if so, return it.
33 abstract JsonStreamContext getParsingContext() - Method that can be used to access current parsing context reader is in.
34 FormatSchema getSchema() - Method for accessing Schema that this parser uses, if any.
35 short getShortValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java short primitive type.
36 abstract String getText() - Method for accessing textual representation of the current token; if no current token (before first call to nextToken(), or after encountering end-of-input), returns null.
37 abstract char[] getTextCharacters() - Method similar to getText(), but that will return underlying (unmodifiable) character array that contains textual value, instead of constructing a String object to contain this information.
38 abstract int getTextLength() - Accessor used with getTextCharacters(), to know length of String stored in returned buffer.
39 abstract int getTextOffset() - Accessor used with getTextCharacters(), to know offset of the first text content character within buffer.
40 abstract JsonLocation getTokenLocation() - Method that return the starting location of the current token; that is, position of the first character from input that starts the current token.
41 Object getTypeId() - Method that can be called to check whether current token (one that was just read) has an associated type id, and if so, return it.
42 boolean getValueAsBoolean() - Method that will try to convert value of current token to a boolean.
43 boolean getValueAsBoolean(boolean defaultValue) - Method that will try to convert value of current token to a boolean.
44 double getValueAsDouble() - Method that will try to convert value of current token to a Java double.
45 double getValueAsDouble(double defaultValue) - Method that will try to convert value of current token to a Java double.
46 int getValueAsInt() - Method that will try to convert value of current token to a int.
47 int getValueAsInt(int defaultValue) - Method that will try to convert value of current token to a int.
48 long getValueAsLong() - Method that will try to convert value of current token to a long.
49 long getValueAsLong(long defaultValue) - Method that will try to convert value of current token to a long.
50 String getValueAsString() - Method that will try to convert value of current token to a String.
51 abstract String getValueAsString(String defaultValue) - Method that will try to convert value of current token to a String.
52 abstract boolean hasCurrentToken() - Method for checking whether parser currently points to a token (and data for that token is available).
53 abstract boolean hasTextCharacters() - Method that can be used to determine whether calling of getTextCharacters() would be the most efficient way to access textual content for the event parser currently points to.
54 abstract boolean isClosed() - Method that can be called to determine whether this parser is closed or not.
55 boolean isEnabled(JsonParser.Feature f) - Method for checking whether specified JsonParser.Feature is enabled.
56 boolean isExpectedStartArrayToken() - Specialized accessor that can be used to verify that the current token indicates start array (usually meaning that current token is JsonToken.START_ARRAY) when start array is expected.
57 Boolean nextBooleanValue() - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_TRUE or JsonToken.VALUE_FALSE returns matching Boolean value; otherwise return null.
58 boolean nextFieldName(SerializableString str) - Method that fetches next token (as if calling nextToken()) and verifies whether it is JsonToken.FIELD_NAME with specified name and returns result of that comparison.
59 int nextIntValue(int defaultValue) - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_NUMBER_INT returns 32-bit int value; otherwise returns specified default value It is functionally equivalent to:
60 long nextLongValue(long defaultValue) - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_NUMBER_INT returns 64-bit long value; otherwise returns specified default value It is functionally equivalent to:
61 String nextTextValue() - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_STRING returns contained String value; otherwise returns null.
62 abstract JsonToken nextToken() - Main iteration method, which will advance stream enough to determine type of the next token, if any.
63 abstract JsonToken nextValue() - Iteration method that will advance stream enough to determine type of the next token that is a value type (including JSON Array and Object start/end markers).
64 abstract void overrideCurrentName(String name) - Method that can be used to change what is considered to be the current (field) name.
65 int readBinaryValue(Base64Variant b64variant, OutputStream out) - Similar to readBinaryValue(OutputStream) but allows explicitly specifying base64 variant to use.
66 int readBinaryValue(OutputStream out) - Method that can be used as an alternative to getBigIntegerValue(), especially when value can be large.
67 <T> T readValueAs(Class<T> valueType) - Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).
68 <T> T readValueAs(TypeReference<?> valueTypeRef)- Method to deserialize JSON content into a Java type, reference to which is passed as argument.
69 <T extends TreeNode> T readValueAsTree() - Method to deserialize JSON content into equivalent "tree model", represented by root TreeNode of resulting model.
70 <T> Iterator<T> readValuesAs(Class<T> valueType) - Method for reading sequence of Objects from parser stream, all with same specified value type.
71 <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef)- Method for reading sequence of Objects from parser stream, all with same specified value type.
72 int releaseBuffered(OutputStream out) - Method that can be called to push back any content that has been read but not consumed by the parser.
73 int releaseBuffered(Writer w) - Method that can be called to push back any content that has been read but not consumed by the parser.
74 boolean requiresCustomCodec() - Method that can be called to determine if a custom ObjectCodec is needed for binding data parsed using JsonParser constructed by this factory (which typically also implies the same for serialization with JsonGenerator).
75 abstract void setCodec(ObjectCodec c) - Setter that allows defining ObjectCodec associated with this parser, if any.
76 JsonParser setFeatureMask(int mask) - Bulk set method for (re)settting states of all standard JsonParser.Features
77 void setSchema(FormatSchema schema) - Method to call to make this parser use specified schema.
78 abstract JsonParser skipChildren() - Method that will skip all child tokens of an array or object token that the parser currently points to, iff stream points to JsonToken.START_OBJECT or JsonToken.START_ARRAY.
79 abstract Version version() - Accessor for getting version of the core package, given a parser instance.

Methods inherited

This class inherits methods from the following classes:

  • java.lang.Object