แจ็คสัน - คู่มือฉบับย่อ

Jackson เป็นไลบรารีที่ใช้ java อย่างง่ายเพื่อจัดลำดับออบเจ็กต์ java เป็น JSON และในทางกลับกัน

คุณสมบัติ

  • Easy to use. - jackson API จัดเตรียมส่วนหน้าระดับสูงเพื่อลดความซับซ้อนของกรณีการใช้งานที่ใช้กันทั่วไป

  • No need to create mapping. - jackson API ให้การแมปเริ่มต้นสำหรับวัตถุส่วนใหญ่ที่จะทำให้เป็นอนุกรม

  • Performance. - แจ็คสันเงียบเร็วและมีหน่วยความจำต่ำและเหมาะสำหรับกราฟหรือระบบวัตถุขนาดใหญ่

  • Clean JSON. - แจ็คสันสร้างผลลัพธ์ JSON ที่สะอาดและกะทัดรัดซึ่งอ่านง่าย

  • No Dependency. - ห้องสมุดแจ็คสันไม่ต้องการห้องสมุดอื่นนอกเหนือจาก jdk

  • Open Source - ห้องสมุดแจ็คสันเป็นโอเพ่นซอร์สและใช้งานได้ฟรี

สามวิธีในการประมวลผล JSON

Jackson มีทางเลือกสามวิธีในการประมวลผล JSON

  • Streaming API- อ่านและเขียนเนื้อหา JSON เป็นเหตุการณ์ที่ไม่ต่อเนื่อง JsonParser อ่านข้อมูลในขณะที่ JsonGenerator เขียนข้อมูล เป็นแนวทางที่ทรงพลังที่สุดในสามวิธีนี้และมีค่าใช้จ่ายต่ำสุดและเร็วที่สุดในการอ่าน / เขียน เป็นตัวแยกวิเคราะห์ Analogus เป็น Stax สำหรับ XML

  • Tree Model- จัดเตรียมการแสดงแผนผังในหน่วยความจำของเอกสาร JSON ObjectMapper สร้างโครงสร้างของโหนด JsonNode เป็นแนวทางที่ยืดหยุ่นที่สุด เป็นตัวแยกวิเคราะห์ DOM สำหรับ XML

  • Data Binding - แปลง JSON เป็นและจาก POJO (Plain Old Java Object) โดยใช้ตัวเข้าถึงคุณสมบัติหรือใช้คำอธิบายประกอบ เป็นสองประเภท

    • Simple Data Binding - แปลง JSON ไปและกลับจาก Java Maps, Lists, Strings, Numbers, Booleans และ null objects

    • Full Data Binding - แปลง JSON เป็นและจากประเภท JAVA ใด ๆ

    ObjectMapper อ่าน / เขียน JSON สำหรับการเชื่อมโยงข้อมูลทั้งสองประเภท การผูกข้อมูลเป็นวิธีที่สะดวกที่สุดและคล้ายคลึงกับ JAXB parer สำหรับ XML

ลองใช้ตัวเลือกออนไลน์

คุณไม่จำเป็นต้องตั้งค่าสภาพแวดล้อมของคุณเองเพื่อเริ่มเรียนรู้ Guava ซึ่งเป็นไลบรารีที่ใช้ JAVA เหตุผลนั้นง่ายมากเราได้ตั้งค่าสภาพแวดล้อมการเขียนโปรแกรม Java แบบออนไลน์แล้วเพื่อให้คุณสามารถรวบรวมและดำเนินการตัวอย่างที่มีอยู่ทั้งหมดทางออนไลน์ในเวลาเดียวกันเมื่อคุณทำงานตามทฤษฎีของคุณ สิ่งนี้ช่วยให้คุณมั่นใจในสิ่งที่คุณกำลังอ่านและตรวจสอบผลลัพธ์ด้วยตัวเลือกต่างๆ อย่าลังเลที่จะแก้ไขตัวอย่างใด ๆ และดำเนินการทางออนไลน์

ลองทำตามตัวอย่างโดยใช้ Try it ตัวเลือกที่มุมขวาบนของกล่องโค้ดตัวอย่างด้านล่าง:

public class MyFirstJavaProgram {

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

สำหรับตัวอย่างส่วนใหญ่ที่ให้ไว้ในบทช่วยสอนนี้คุณจะพบ Try it ดังนั้นเพียงแค่ใช้ประโยชน์จากมันและสนุกกับการเรียนรู้ของคุณ

การตั้งค่าสภาพแวดล้อมท้องถิ่น

หากคุณยังเต็มใจที่จะตั้งค่าสภาพแวดล้อมของคุณสำหรับภาษาการเขียนโปรแกรม Java ส่วนนี้จะแนะนำคุณเกี่ยวกับวิธีดาวน์โหลดและตั้งค่า Java บนเครื่องของคุณ โปรดทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าสภาพแวดล้อม

Java SE เป็นอิสระที่มีอยู่จากการเชื่อมโยงดาวน์โหลด Java คุณจึงดาวน์โหลดเวอร์ชันที่อิงตามระบบปฏิบัติการของคุณ

ทำตามคำแนะนำเพื่อดาวน์โหลด java และเรียกใช้ไฟล์ .exeเพื่อติดตั้ง Java บนเครื่องของคุณ เมื่อคุณติดตั้ง Java บนเครื่องของคุณคุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมเพื่อชี้ไปที่ไดเร็กทอรีการติดตั้งที่ถูกต้อง:

การตั้งค่าเส้นทางสำหรับ windows 2000 / XP:

สมมติว่าคุณได้ติดตั้ง Java ในไดเร็กทอรีc: \ Program Files \ java \ jdk :

  • คลิกขวาที่ 'My Computer' และเลือก 'Properties'

  • คลิกที่ปุ่ม "ตัวแปรสภาพแวดล้อม" ใต้แท็บ "ขั้นสูง"

  • ตอนนี้เปลี่ยนตัวแปร 'Path' เพื่อให้มีพา ธ ไปยังไฟล์ปฏิบัติการ Java ตัวอย่างหากเส้นทางถูกตั้งค่าเป็น 'C: \ WINDOWS \ SYSTEM32' ให้เปลี่ยนเส้นทางของคุณเป็นอ่าน 'C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin'

การตั้งค่าเส้นทางสำหรับ windows 95/98 / ME:

สมมติว่าคุณได้ติดตั้ง Java ในไดเร็กทอรีc: \ Program Files \ java \ jdk :

  • แก้ไขไฟล์ 'C: \ autoexec.bat' และเพิ่มบรรทัดต่อไปนี้ที่ท้าย:
    'SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'

การตั้งค่าเส้นทางสำหรับ Linux, UNIX, Solaris, FreeBSD:

ควรตั้งค่า PATH ตัวแปรสภาพแวดล้อมให้ชี้ไปที่ตำแหน่งที่ติดตั้งไบนารี Java อ้างถึงเอกสารประกอบเชลล์ของคุณหากคุณมีปัญหาในการดำเนินการนี้

ตัวอย่างเช่นหากคุณใช้bashเป็นเชลล์ของคุณคุณจะต้องเพิ่มบรรทัดต่อไปนี้ต่อท้าย '.bashrc: export PATH = / path / to / java: $ PATH'

บรรณาธิการ Java ยอดนิยม:

ในการเขียนโปรแกรม Java ของคุณคุณจะต้องมีโปรแกรมแก้ไขข้อความ มี IDE ที่ซับซ้อนมากขึ้นในตลาด แต่ในตอนนี้คุณสามารถพิจารณาสิ่งใดสิ่งหนึ่งต่อไปนี้:

  • Notepad: บนเครื่อง Windows คุณสามารถใช้โปรแกรมแก้ไขข้อความง่ายๆเช่น Notepad (แนะนำสำหรับบทช่วยสอนนี้), TextPad

  • Netbeans:เป็น Java IDE ที่เป็นโอเพ่นซอร์สและฟรีซึ่งสามารถดาวน์โหลดได้จาก http://www.netbeans.org/index.html.

  • Eclipse: ยังเป็น Java IDE ที่พัฒนาโดยชุมชนโอเพนซอร์ส eclipse และสามารถดาวน์โหลดได้จาก http://www.eclipse.org/.

ดาวน์โหลดไฟล์เก็บถาวรของแจ็คสัน

ดาวน์โหลดเวอร์ชันล่าสุดของไฟล์ขวดแจ็คสันจากMaven Repository - แจ็คสัน ในบทช่วยสอนนี้มีการดาวน์โหลด jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar และ jackson-databind-2.8.9.jar ลงในโฟลเดอร์ C: \> jackson

ระบบปฏิบัติการ ชื่อที่เก็บถาวร
Windows jackson-xxx-2.8.9.jar
ลินุกซ์ jackson-xxx-2.8.9.jar
Mac jackson-xxx-2.8.9.jar

ตั้งค่าสภาพแวดล้อมของแจ็คสัน

ตั้งค่า jackson_HOMEตัวแปรสภาพแวดล้อมเพื่อชี้ไปยังตำแหน่งไดเร็กทอรีฐานที่เก็บ Guava jar ไว้ในเครื่องของคุณ สมมติว่าเราได้แยก jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar และ jackson-databind-2.8.9.jar ในโฟลเดอร์ jackson บนระบบปฏิบัติการต่างๆดังนี้

ระบบปฏิบัติการ เอาต์พุต
Windows ตั้งค่าตัวแปรสภาพแวดล้อม jackson_HOME เป็น C: \ jackson
ลินุกซ์ ส่งออก jackson_HOME = / usr / local / jackson
Mac ส่งออก jackson_HOME = / Library / jackson

ตั้งค่าตัวแปร CLASSPATH

ตั้งค่า CLASSPATHตัวแปรสภาพแวดล้อมเพื่อชี้ไปที่ตำแหน่งโถแจ็คสัน สมมติว่าเราได้จัดเก็บ jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar และ jackson-databind-2.8.9.jar ไว้ในโฟลเดอร์ jackson ในระบบปฏิบัติการต่างๆดังนี้

ระบบปฏิบัติการ เอาต์พุต
Windows ตั้งค่าตัวแปรสภาพแวดล้อม 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 โถ; .;
ลินุกซ์ ส่งออก 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 ส่งออก 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 :.

ก่อนที่จะเข้าสู่รายละเอียดของไลบรารีแจ็คสันเรามาดูแอปพลิเคชันที่ใช้งานได้จริง ในตัวอย่างนี้เราได้สร้างชั้นเรียนนักเรียน เราจะสร้างสตริง JSON ที่มีรายละเอียดของนักเรียนและกำหนดค่าเริ่มต้นให้กับอ็อบเจ็กต์ของนักเรียนจากนั้นจัดลำดับให้เป็นสตริง JSON

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

ขั้นตอนที่ต้องจำ

ต่อไปนี้เป็นขั้นตอนสำคัญที่จะต้องพิจารณาที่นี่

ขั้นตอนที่ 1: สร้างวัตถุ ObjectMapper

สร้างวัตถุ ObjectMapper เป็นวัตถุที่ใช้ซ้ำได้

ObjectMapper mapper = new ObjectMapper();

ขั้นตอนที่ 2: DeSerialize JSON เป็น Object

ใช้เมธอด readValue () เพื่อรับ Object จาก JSON ส่งสตริง json / แหล่งที่มาของสตริง json และประเภทอ็อบเจ็กต์เป็นพารามิเตอร์

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

ขั้นตอนที่ 3: Serialize Object เป็น JSON

ใช้เมธอด writeValueAsString () เพื่อรับการแสดงสตริง JSON ของอ็อบเจ็กต์

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

ObjectMapper เป็นคลาสนักแสดงหลักของห้องสมุดแจ็คสัน คลาส ObjectMapper ObjectMapper มีฟังก์ชันสำหรับการอ่านและเขียน JSON ทั้งไปและกลับจาก POJO พื้นฐาน (วัตถุ Java แบบเก่าธรรมดา) หรือไปและกลับจาก JSON Tree Model (JsonNode) ที่ใช้งานทั่วไปรวมถึงฟังก์ชันที่เกี่ยวข้องสำหรับการแปลง นอกจากนี้ยังสามารถปรับแต่งได้อย่างมากเพื่อใช้งานทั้งกับเนื้อหา JSON ที่แตกต่างกันและเพื่อรองรับแนวคิด Object ขั้นสูงเพิ่มเติมเช่นความหลากหลายและเอกลักษณ์ของวัตถุ ObjectMapper ยังทำหน้าที่เป็นโรงงานสำหรับคลาส ObjectReader และ ObjectWriter ขั้นสูงเพิ่มเติม

การประกาศคลาส

ต่อไปนี้เป็นคำประกาศสำหรับ com.fasterxml.jackson.databind.ObjectMapper ชั้นเรียน -

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

ชั้นเรียนที่ซ้อนกัน

ส. ชั้นเรียนและคำอธิบาย
1 static class ObjectMapper.DefaultTypeResolverBuilder

TypeResolverBuilder แบบกำหนดเองที่จัดเตรียมตัวสร้างตัวแก้ไขชนิดที่ใช้กับสิ่งที่เรียกว่า "การพิมพ์เริ่มต้น" (ดูรายละเอียดที่ enableDefaultTyping ())

2 static class ObjectMapper.DefaultTyping

การแจงนับใช้กับ enableDefaultTyping () เพื่อระบุชนิดของการพิมพ์เริ่มต้น (คลาส) ที่ควรใช้สำหรับ

ฟิลด์

  • protected DeserializationConfig _deserializationConfig - คอนฟิกูเรชันอ็อบเจ็กต์ที่กำหนดการตั้งค่าส่วนกลางพื้นฐานสำหรับกระบวนการทำให้เป็นอนุกรม

  • protected DefaultDeserializationContext _deserializationContext- วัตถุบริบทพิมพ์เขียว; เก็บไว้ที่นี่เพื่ออนุญาตคลาสย่อยที่กำหนดเอง

  • protected InjectableValues _injectableValues - ผู้ให้บริการสำหรับค่าที่จะฉีดใน POJOs deserialized

  • protected JsonFactory _jsonFactory - โรงงานใช้สร้างอินสแตนซ์ JsonParser และ JsonGenerator ตามความจำเป็น

  • protected SimpleMixInResolver _mixIns - การจับคู่ที่กำหนดวิธีการใช้คำอธิบายประกอบแบบผสม: คีย์คือประเภทสำหรับคำอธิบายประกอบเพิ่มเติมที่ได้รับและค่าคือประเภทที่มีคำอธิบายประกอบเพื่อ "ผสมใน"

  • protected ConfigOverrides _propertyOverrides - การลบล้างคอนฟิกูเรชันต่อประเภทที่ใช้งานอยู่ในปัจจุบันเข้าถึงได้โดยประเภทคุณสมบัติที่ประกาศไว้

  • protected Set<Object> _registeredModuleTypes - ชุดของประเภทโมดูล (ตาม Module.getTypeId () ที่ได้รับการลงทะเบียนติดตาม iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS เพื่อให้สามารถละเว้นการเรียกการลงทะเบียนซ้ำได้ (เพื่อหลีกเลี่ยงการเพิ่มตัวจัดการเดียวกันหลายครั้งโดยส่วนใหญ่)

  • protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers - เราจะใช้แผนที่ระดับหลักแยกต่างหากเพื่อติดตาม deserializers ระดับรูท

  • protected SerializationConfig _serializationConfig - คอนฟิกูเรชันอ็อบเจ็กต์ที่กำหนดการตั้งค่าส่วนกลางพื้นฐานสำหรับกระบวนการทำให้เป็นอนุกรม

  • protected SerializerFactory _serializerFactory - โรงงาน Serializer ใช้สำหรับสร้าง serializers

  • protected DefaultSerializerProvider _serializerProvider - ออบเจ็กต์ที่จัดการการเข้าถึงซีเรียลไลเซอร์ที่ใช้สำหรับการทำให้เป็นอนุกรมรวมถึงการแคช

  • protected SubtypeResolver _subtypeResolver - สิ่งที่ใช้สำหรับการลงทะเบียนประเภทย่อยแก้ไขเป็นประเภทย่อย / ซุปเปอร์ตามต้องการ

  • protected TypeFactory _typeFactory- โรงงานเฉพาะที่ใช้สำหรับสร้างอินสแตนซ์ JavaType จำเป็นเพื่อให้โมดูลสามารถเพิ่มการจัดการประเภทที่กำหนดเองได้มากขึ้น (ส่วนใหญ่รองรับประเภทของภาษาที่ไม่ใช่ Java JVM)

  • protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR

  • protected static BaseSettings DEFAULT_BASE - การตั้งค่าพื้นฐานประกอบด้วยค่าเริ่มต้นที่ใช้สำหรับอินสแตนซ์ ObjectMapper ทั้งหมด

  • protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER

ตัวสร้าง

ส. ตัวสร้างและคำอธิบาย
1 ObjectMapper()

ตัวสร้างเริ่มต้นซึ่งจะสร้าง JsonFactory เริ่มต้นตามความจำเป็นให้ใช้ SerializerProvider เป็น SerializerProvider และ BeanSerializerFactory เป็น SerializerFactory

2 ObjectMapper(JsonFactory jf)

สร้างอินสแตนซ์ที่ใช้ JsonFactory ที่ระบุสำหรับการสร้าง JsonParsers และ / หรือ JsonGenerators ที่จำเป็น

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

สร้างอินสแตนซ์ที่ใช้ JsonFactory ที่ระบุสำหรับการสร้าง JsonParsers และ / หรือ JsonGenerators ที่จำเป็นและใช้ผู้ให้บริการที่กำหนดเพื่อเข้าถึง serializers และ deserializers

4 protected ObjectMapper(ObjectMapper src)

Copy-constructor ส่วนใหญ่ใช้เพื่อรองรับ copy ()

วิธีการ

เมธอดตัวช่วยแบบ Overridable ที่ใช้สำหรับสร้าง SerializerProvider เพื่อใช้สำหรับการทำให้เป็นอนุกรม เป็นโมฆะ addMixInAnnotations (เป้าหมายคลาส <?> คลาส <?> mixinSource) - เลิกใช้แล้ว ตั้งแต่ 2.5: แทนที่ด้วยรูปแบบวิธีการที่คล่องแคล่ว addMixIn (คลาสคลาส) DefaultDeserializationContext createDeserializationContext (JsonParser p, DeserializationConfig cfg) - เมธอดตัวช่วยภายในที่เรียกเพื่อสร้างอินสแตนซ์ของ DeserializationContext สำหรับการแยกค่ารูทค่าเดียว JsonSchema สร้าง JsonSchema (คลาส <?> t) - เลิกใช้แล้ว ตั้งแต่ 2.6 ใช้เครื่องกำเนิด JSON Schema ภายนอก (https://github.com/FasterXML/jackson-module-jsonSchema) (ซึ่งภายใต้ประทุนเรียกว่า acceptJsonFormatVisitor (JavaType, JsonFormatVisitorWrapper)) โมฆะ registerSubtypes (คลาส <?> ... คลาส) - วิธีการลงทะเบียนคลาสที่ระบุเป็นประเภทย่อยเพื่อให้ความละเอียดตามชื่อพิมพ์สามารถเชื่อมโยงซูเปอร์ไทป์กับชนิดย่อยได้ (เป็นทางเลือกในการใช้คำอธิบายประกอบ) เป็นโมฆะ setFilters (FilterProvider filterProvider) - เลิกใช้แล้ว ตั้งแต่ 2.6 ให้ใช้ setFilterProvider (com.fasterxml.jackson.databind.ser.FilterProvider) แทน (อนุญาตให้ผูกมัด) เมธอด Factory ในการสร้าง ObjectReader ซึ่งจะใช้รายละเอียดการหลีกเลี่ยงอักขระที่ระบุสำหรับเอาต์พุต
1 protected void _checkInvalidCopy(Class<?> exp)

2 protected void _configAndWriteValue(JsonGenerator g, Object value) - วิธีที่เรียกว่ากำหนดค่าเครื่องกำเนิดไฟฟ้าตามความจำเป็นแล้วเรียกใช้ฟังก์ชันการเขียน
3 protected Object _convert(Object fromValue, JavaType toValueType) - การใช้งานการแปลงตามจริง: แทนที่จะใช้วิธีการอ่านและเขียนที่มีอยู่โค้ดส่วนใหญ่จะอินไลน์
4 protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) - วิธีที่เรียกเพื่อค้นหา deserializer สำหรับค่าระดับรูทที่ส่งผ่าน
5 protected JsonToken _initForReading(JsonParser p) - วิธีการที่เรียกเพื่อให้แน่ใจว่า parser ที่ระบุพร้อมสำหรับการอ่านเนื้อหาสำหรับการผูกข้อมูล
6 protected ObjectReader _newReader(DeserializationConfig config) - คลาสย่อยเมธอดโรงงานต้องแทนที่เพื่อสร้างอินสแตนซ์ ObjectReader ของประเภทย่อยที่เหมาะสม
7 protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - คลาสย่อยเมธอดโรงงานต้องแทนที่เพื่อสร้างอินสแตนซ์ ObjectReader ของประเภทย่อยที่เหมาะสม
8 protected ObjectWriter _newWriter(SerializationConfig config) - คลาสย่อยเมธอดโรงงานต้องแทนที่เพื่อสร้างอินสแตนซ์ ObjectWriter ของประเภทย่อยที่เหมาะสม
9 protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - คลาสย่อยเมธอดโรงงานต้องแทนที่เพื่อสร้างอินสแตนซ์ ObjectWriter ของประเภทย่อยที่เหมาะสม
10 protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - คลาสย่อยเมธอดโรงงานต้องแทนที่เพื่อสร้างอินสแตนซ์ ObjectWriter ของประเภทย่อยที่เหมาะสม
11 protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12 protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - การดำเนินการตามจริงของการอ่านค่า + การดำเนินการผูก
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) - วิธีการเยี่ยมชมลำดับชั้นของประเภทที่กำหนดโดยใช้ผู้เยี่ยมชมที่ระบุ
17 void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - วิธีการเยี่ยมชมลำดับชั้นของประเภทที่กำหนดโดยใช้ผู้เยี่ยมชมที่ระบุ
18 ObjectMapper addHandler(DeserializationProblemHandler h) - วิธีการเพิ่ม DeserializationProblemHandler ที่ระบุเพื่อใช้ในการจัดการปัญหาเฉพาะระหว่าง deserialization
19 ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource) - วิธีการใช้สำหรับเพิ่มคำอธิบายประกอบแบบผสมเพื่อใช้สำหรับการเพิ่มคลาสหรือส่วนต่อประสานที่ระบุ
20 boolean canDeserialize(JavaType type) - วิธีการที่สามารถเรียกเพื่อตรวจสอบว่าผู้ทำแผนที่คิดว่าสามารถแยกวัตถุออกจากวัตถุประเภทที่กำหนดได้หรือไม่
21 boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - วิธีการคล้ายกับ canDeserialize (JavaType) แต่สามารถส่งคืน Throwable จริงที่ถูกโยนทิ้งเมื่อพยายามสร้างซีเรียลไลเซอร์: สิ่งนี้อาจมีประโยชน์ในการหาว่าปัญหาที่แท้จริงคืออะไร
22 boolean canSerialize(Class<?> type) - วิธีที่สามารถเรียกเพื่อตรวจสอบว่าผู้ทำแผนที่คิดว่าสามารถทำให้เป็นอนุกรมอินสแตนซ์ของคลาสที่กำหนดได้หรือไม่
23 boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - วิธีการคล้ายกับ canSerialize (Class) แต่สามารถส่งคืน Throwable จริงที่ถูกโยนทิ้งเมื่อพยายามสร้าง Serializer: สิ่งนี้อาจมีประโยชน์ในการหาว่าปัญหาที่แท้จริงคืออะไร
24 ObjectMapper clearProblemHandlers() - วิธีการลบอินสแตนซ์ DeserializationProblemHandlers ที่ลงทะเบียนทั้งหมดออกจากตัวทำแผนที่นี้
25 MutableConfigOverride configOverride(Classlt;?> type) - Accessor สำหรับรับออบเจ็กต์การลบล้างการกำหนดค่าที่ไม่สามารถเปลี่ยนแปลงได้สำหรับประเภทที่กำหนดจำเป็นต้องเพิ่มหรือเปลี่ยนแปลงการแทนที่ตามประเภทที่ใช้กับคุณสมบัติของประเภทที่กำหนด
26 ObjectMapper configure(DeserializationFeature f, boolean state) - วิธีการเปลี่ยนสถานะของคุณสมบัติการดีซีเรียลไลเซชั่นเปิด / ปิดสำหรับตัวทำแผนที่วัตถุนี้
27 ObjectMapper configure(JsonGenerator.Feature f, boolean state) - วิธีการเปลี่ยนสถานะของคุณสมบัติเปิด / ปิด JsonGenerator สำหรับอินสแตนซ์เครื่องกำเนิดไฟฟ้าที่ทำแผนที่วัตถุนี้สร้างขึ้น
28 ObjectMapper configure(JsonParser.Feature f, boolean state) - วิธีการเปลี่ยนสถานะของ JsonParser ที่ระบุคุณสมบัติสำหรับอินสแตนซ์ตัวแยกวิเคราะห์ตัวทำแผนที่วัตถุนี้สร้างขึ้น
29 ObjectMapper configure(MapperFeature f, boolean state) - วิธีการเปลี่ยนสถานะของคุณสมบัติการเปิด / ปิดสำหรับอินสแตนซ์ผู้ทำแผนที่นี้
30 ObjectMapper configure(SerializationFeature f, boolean state) - วิธีการเปลี่ยนสถานะของคุณสมบัติการเปิด / ปิดการทำให้เป็นอนุกรมสำหรับตัวทำแผนที่วัตถุนี้
31 JavaType constructType(Type t) - วิธีอำนวยความสะดวกสำหรับการสร้าง JavaType จากประเภทที่กำหนด (โดยทั่วไปคือ java.lang.Class) แต่ไม่มีบริบทที่ชัดเจน
32 <T> T convertValue(Object fromValue, Class<T> toValueType) - วิธีที่สะดวกสำหรับการแปลงสองขั้นตอนจากมูลค่าที่กำหนดเป็นตัวอย่างของประเภทมูลค่าที่กำหนดหากจำเป็นต้องมีการแปลง (แต่เฉพาะในกรณีที่!)
33 <T> T convertValue(Object fromValue, JavaType toValueType) - ดู convertValue (Object, Class)
34 <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) - ดู convertValue (Object, Class)
35 ObjectMapper copy() - วิธีการสร้างอินสแตนซ์ ObjectMapper ใหม่ที่มีการกำหนดค่าเริ่มต้นเหมือนกับอินสแตนซ์นี้
36 ArrayNode createArrayNode() - หมายเหตุ: ประเภทการส่งคืนเป็นตัวแปรร่วมเนื่องจาก ObjectCodec พื้นฐานไม่สามารถอ้างถึงประเภทโหนดคอนกรีตได้ (เนื่องจากเป็นส่วนหนึ่งของแพ็กเกจหลักในขณะที่นัยเป็นส่วนหนึ่งของแพ็คเกจตัวทำแผนที่)
37 ObjectNode createObjectNode() - หมายเหตุ: ประเภทการส่งคืนเป็นตัวแปรร่วมเนื่องจาก ObjectCodec พื้นฐานไม่สามารถอ้างถึงประเภทโหนดคอนกรีตได้ (เนื่องจากเป็นส่วนหนึ่งของแพ็กเกจหลักในขณะที่นัยเป็นส่วนหนึ่งของแพ็คเกจตัวทำแผนที่)
38 protected ClassIntrospector defaultClassIntrospector() - วิธีการตัวช่วยแบบ Overridable ที่ใช้สร้าง ClassIntrospector เริ่มต้นที่จะใช้
39 ObjectMapper disable(DeserializationFeature feature) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
40 ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
41 ObjectMapper disable(JsonGenerator.Feature... features) - วิธีการปิดใช้งาน JsonGenerator ที่ระบุคุณสมบัติสำหรับอินสแตนซ์ตัวแยกวิเคราะห์ตัวทำแผนที่วัตถุนี้สร้างขึ้น
42 ObjectMapper disable(JsonParser.Feature... features) - วิธีการปิดใช้งาน JsonParser ที่ระบุคุณลักษณะสำหรับอินสแตนซ์ตัวแยกวิเคราะห์ที่ตัวทำแผนที่วัตถุนี้สร้างขึ้น
43 ObjectMapper disable(MapperFeature... f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
44 ObjectMapper disable(SerializationFeature f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
45 ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
46 ObjectMapper disableDefaultTyping()- วิธีการปิดใช้งานการรวมข้อมูลประเภทโดยอัตโนมัติ หากเป็นเช่นนั้นเฉพาะประเภทที่มีคำอธิบายประกอบอย่างชัดเจน (ประเภทที่มี JsonTypeInfo) จะมีข้อมูลประเภทที่ฝังเพิ่มเติม
47 ObjectMapper enable(DeserializationFeature feature) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
48 ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
49 ObjectMapper enable(JsonGenerator.Feature... features) - วิธีการเปิดใช้งาน JsonGenerator ที่ระบุคุณสมบัติสำหรับอินสแตนซ์ตัวแยกวิเคราะห์ตัวทำแผนที่วัตถุนี้สร้างขึ้น
50 ObjectMapper enable(JsonParser.Feature... features) - วิธีการเปิดใช้งาน JsonParser ที่ระบุคุณสมบัติสำหรับอินสแตนซ์ตัวแยกวิเคราะห์ตัวทำแผนที่วัตถุนี้สร้างขึ้น
51 ObjectMapper enable(MapperFeature... f) - วิธีการเปิดใช้งานคุณสมบัติ MapperConfig ที่ระบุ
52 ObjectMapper enable(SerializationFeature f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
53 ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - วิธีการเปิดใช้งานคุณสมบัติ DeserializationConfig ที่ระบุ
54 ObjectMapper enableDefaultTyping() - วิธีอำนวยความสะดวกที่เทียบเท่ากับการโทร
55 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - วิธีอำนวยความสะดวกที่เทียบเท่ากับการโทร
56 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - วิธีการเปิดใช้งานการรวมข้อมูลประเภทโดยอัตโนมัติซึ่งจำเป็นสำหรับการแยกประเภทของโพลีมอร์ฟิกที่เหมาะสม (เว้นแต่ประเภทจะได้รับการใส่คำอธิบายประกอบด้วย JsonTypeInfo)
57 ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - วิธีการเปิดใช้งานการรวมข้อมูลประเภทโดยอัตโนมัติ - จำเป็นสำหรับการแยกประเภทของโพลีมอร์ฟิกที่เหมาะสม (ยกเว้นประเภทที่มีการใส่คำอธิบายประกอบด้วย JsonTypeInfo) - ใช้กลไกการรวม "As.PROPERTY" และชื่อคุณสมบัติที่ระบุเพื่อใช้ในการรวม (ค่าเริ่มต้นคือ "@ class "เนื่องจากข้อมูลประเภทเริ่มต้นจะใช้ชื่อคลาสเป็นตัวระบุประเภทเสมอ)
58 ObjectMapper findAndRegisterModules() - วิธีอำนวยความสะดวกที่เทียบเท่ากับการทำงาน: mapper.registerModules (mapper.findModules ());
59 Class<?> findMixInClassFor(Class<?> cls)
60 static List<Module> findModules() - วิธีการค้นหาวิธีการที่ใช้ได้โดยใช้สิ่งอำนวยความสะดวก JDK ServiceLoader พร้อมกับ SPI ที่ให้มาด้วยโมดูล
61 static List<Module> findModules(ClassLoader classLoader) - วิธีการค้นหาวิธีการที่ใช้ได้โดยใช้สิ่งอำนวยความสะดวก JDK ServiceLoader พร้อมกับ SPI ที่ให้มาด้วยโมดูล
62 DateFormat getDateFormat()
63 DeserializationConfig getDeserializationConfig() - วิธีที่ส่งคืนอ็อบเจ็กต์ DeserializationConfig ดีฟอลต์ที่ใช้ร่วมกันซึ่งกำหนดการตั้งค่าคอนฟิกูเรชันสำหรับ deserialization
64 DeserializationContext getDeserializationContext() - วิธีการรับ DeserializationContext ปัจจุบัน
65 JsonFactory getFactory() - วิธีที่สามารถใช้เพื่อรับ JsonFactory ที่ผู้ทำแผนที่นี้ใช้หากต้องการสร้าง JsonParsers และ / หรือ JsonGenerators
66 InjectableValues getInjectableValues()
67 JsonFactory getJsonFactory()- เลิกใช้แล้ว ตั้งแต่ 2.1: ใช้ getFactory () แทน
68 JsonNodeFactory getNodeFactory() - วิธีที่สามารถใช้เพื่อรับ JsonNodeFactory ที่ผู้ทำแผนที่นี้จะใช้เมื่อสร้างอินสแตนซ์ JsonNode รูทสำหรับต้นไม้โดยตรง
69 PropertyNamingStrategy getPropertyNamingStrategy()
70 SerializationConfig getSerializationConfig() - วิธีที่ส่งคืนอ็อบเจ็กต์ SerializationConfig เริ่มต้นที่ใช้ร่วมกันซึ่งกำหนดการตั้งค่าคอนฟิกูเรชันสำหรับการทำให้เป็นอนุกรม
71 SerializerFactory getSerializerFactory() - วิธีการรับ SerializerFactory ปัจจุบัน
72 SerializerProvider getSerializerProvider() - Accessor สำหรับอินสแตนซ์ "พิมพ์เขียว" (หรือโรงงาน) ซึ่งอินสแตนซ์ถูกสร้างขึ้นโดยการเรียก DefaultSerializerProvider.createInstance (com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory)
73 SerializerProvider getSerializerProviderInstance() - Accessor สำหรับสร้างและส่งคืนอินสแตนซ์ SerializerProvider ที่อาจใช้สำหรับการเข้าถึง serializers
74 SubtypeResolver getSubtypeResolver() - วิธีการเข้าถึงตัวแก้ไขชนิดย่อยที่ใช้งานอยู่
75 TypeFactory getTypeFactory() - Accessor สำหรับรับอินสแตนซ์ TypeFactory ที่กำหนดค่าไว้ในปัจจุบัน
76 VisibilityChecker<?> getVisibilityChecker()- วิธีการเข้าถึงตัวตรวจสอบการมองเห็นที่กำหนดค่าไว้ในปัจจุบัน ออบเจ็กต์ที่ใช้ในการพิจารณาว่าองค์ประกอบคุณสมบัติที่กำหนด (วิธีการฟิลด์ตัวสร้าง) สามารถตรวจพบโดยอัตโนมัติหรือไม่
77 boolean isEnabled(DeserializationFeature f) - วิธีการตรวจสอบว่ามีการเปิดใช้งานคุณลักษณะเฉพาะ deserialization หรือไม่
78 boolean isEnabled(JsonFactory.Feature f) - วิธีอำนวยความสะดวกเทียบเท่ากับ:
79 boolean isEnabled(JsonGenerator.Feature f)
80 boolean isEnabled(JsonParser.Feature f)
81 boolean isEnabled(MapperFeature f) - วิธีตรวจสอบว่าเปิดใช้งาน MapperFeature หรือไม่
82 boolean isEnabled(SerializationFeature f) - วิธีการตรวจสอบว่าเปิดใช้งานคุณลักษณะเฉพาะการทำให้เป็นอนุกรมหรือไม่
83 int mixInCount()
84 ObjectReader reader() - วิธีการจากโรงงานในการสร้าง ObjectReader ด้วยการตั้งค่าเริ่มต้น
85 ObjectReader reader(Base64Variant defaultBase64) - วิธีการจากโรงงานในการสร้าง ObjectReader ซึ่งจะใช้ตัวแปรการเข้ารหัส Base64 ที่ระบุสำหรับข้อมูลไบนารีที่เข้ารหัส Base64
86 ObjectReader reader(Class<?> type)- เลิกใช้แล้ว ตั้งแต่ 2.5 ให้ใช้ readerFor (Class) แทน
87 ObjectReader reader(ContextAttributes attrs) - วิธีการจากโรงงานในการสร้าง ObjectReader ซึ่งจะใช้แอตทริบิวต์เริ่มต้นที่ระบุ
88 ObjectReader reader(DeserializationFeature feature) - วิธีการจากโรงงานในการสร้าง ObjectReader โดยเปิดใช้งานคุณลักษณะที่ระบุไว้ (เทียบกับการตั้งค่าที่อินสแตนซ์ mapper นี้มี)
89 ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - วิธีการจากโรงงานในการสร้าง ObjectReader ที่เปิดใช้งานคุณสมบัติที่ระบุไว้ (เทียบกับการตั้งค่าที่อินสแตนซ์ผู้ทำแผนที่นี้มี)
90 ObjectReader reader(FormatSchema schema) - วิธีการจากโรงงานในการสร้าง ObjectReader ซึ่งจะส่งผ่านวัตถุสคีมาเฉพาะไปยัง JsonParser ที่ใช้สำหรับการอ่านเนื้อหา
91 ObjectReader reader(InjectableValues injectableValues) - วิธีการของโรงงานในการสร้าง ObjectReader ซึ่งจะใช้ค่าที่สามารถฉีดได้ที่ระบุ
92 ObjectReader reader(JavaType type)- เลิกใช้แล้ว ตั้งแต่ 2.5 ให้ใช้ readerFor (JavaType) แทน
93 ObjectReader reader(JsonNodeFactory f) - วิธีการจากโรงงานในการสร้าง ObjectReader ซึ่งจะใช้ JsonNodeFactory ที่ระบุสำหรับการสร้างทรี JSON
94 ObjectReader reader(TypeReference<?> type)- เลิกใช้แล้ว ตั้งแต่ 2.5 ให้ใช้ readerFor (TypeReference) แทน
95 ObjectReader readerFor(Class<?> type) - วิธีการจากโรงงานในการสร้าง ObjectReader ที่จะอ่านหรืออัปเดตอินสแตนซ์ของประเภทที่ระบุ
96 ObjectReader readerFor(JavaType type) - วิธีการจากโรงงานในการสร้าง ObjectReader ที่จะอ่านหรืออัปเดตอินสแตนซ์ของประเภทที่ระบุ
97 ObjectReader readerFor(TypeReference<?> type) - วิธีการจากโรงงานในการสร้าง ObjectReader ที่จะอ่านหรืออัปเดตอินสแตนซ์ของประเภทที่ระบุ
98 ObjectReader readerForUpdating(Object valueToUpdate) - วิธีการจากโรงงานในการสร้าง ObjectReader ซึ่งจะอัปเดต Object ที่กำหนด (โดยปกติคือ Bean แต่สามารถเป็น Collection หรือ Map ได้เช่นกัน แต่ไม่ใช่อาร์เรย์) ด้วยข้อมูล JSON
99 ObjectReader readerWithView(Class<?> view) - วิธีการจากโรงงานในการสร้าง ObjectReader ที่จะแยกวัตถุโดยใช้ JSON View (ตัวกรอง) ที่ระบุ
100 JsonNode readTree(byte[] content) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ JsonNode
101 JsonNode readTree(File file) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ JsonNode
102 JsonNode readTree(InputStream in) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ JsonNode
103 <T extends TreeNode> T readTree(JsonParser p) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ JsonNode
104 JsonNode readTree(Reader r) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ JsonNode
105 JsonNode readTree(String content) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ JsonNode
106 JsonNode readTree(URL source) - วิธีการ deserialize เนื้อหา JSON เป็นโครงสร้างที่แสดงโดยใช้ชุดของอินสแตนซ์ 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) - วิธีการแยกเนื้อหา JSON จากไฟล์ที่กำหนดเป็นประเภท Java ที่กำหนด
116 <T> T readValue(File src, JavaType valueType) - วิธีการแยกเนื้อหา JSON จากไฟล์ที่กำหนดเป็นประเภท Java ที่กำหนด
117 <T> T readValue(File src, TypeReference valueTypeRef) - วิธีการแยกเนื้อหา JSON จากไฟล์ที่กำหนดเป็นประเภท Java ที่กำหนด
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) - Type-safe overloaded method โดยทั่วไปเป็นนามแฝงสำหรับ readValue (JsonParser, Class)
123 <T> T readValue(JsonParser p, ResolvedType valueType) - วิธีการ deserialize เนื้อหา JSON เป็นประเภท Java โดยอ้างอิงซึ่งส่งผ่านเป็นอาร์กิวเมนต์
124 <T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - วิธีการ deserialize เนื้อหา JSON เป็นประเภท Java โดยอ้างอิงซึ่งส่งผ่านเป็นอาร์กิวเมนต์
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) - วิธีการ deserialize เนื้อหา JSON จากสตริงเนื้อหา JSON ที่กำหนด
128 <T> T readValue(String content, JavaType valueType) - วิธีการ deserialize เนื้อหา JSON จากสตริงเนื้อหา JSON ที่กำหนด
129 <T> T readValue(String content, TypeReference valueTypeRef) - วิธีการ deserialize เนื้อหา JSON จากสตริงเนื้อหา JSON ที่กำหนด
130 <T> T readValue(URL src, Class<T> valueType) - วิธีการแยกเนื้อหา JSON จากทรัพยากรที่กำหนดเป็นประเภท Java ที่กำหนด
131 <T> T readValue(URL src, JavaType valueType)
132 <T> T readValue(URL src, TypeReference valueTypeRef) - วิธีการแยกเนื้อหา JSON จากทรัพยากรที่กำหนดเป็นประเภท Java ที่กำหนด
133 <T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - วิธีการอำนวยความสะดวกเทียบเท่ากับฟังก์ชัน:
134 <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - วิธีการอำนวยความสะดวกเทียบเท่ากับฟังก์ชัน:
135 <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - วิธีการอำนวยความสะดวกเทียบเท่ากับฟังก์ชัน:
136 <T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - วิธีการอ่านลำดับของวัตถุจากสตรีมตัวแยกวิเคราะห์
137 ObjectMapper registerModule(Module module)- วิธีการลงทะเบียนโมดูลที่สามารถขยายฟังก์ชันการทำงานที่มีให้โดยผู้ทำแผนที่นี้ ตัวอย่างเช่นโดยการเพิ่มผู้ให้บริการสำหรับ serializers และ deserializers ที่กำหนดเอง
138 ObjectMapper registerModules(Iterable<Module> modules)- วิธีการที่สะดวกในการลงทะเบียนโมดูลที่ระบุตามลำดับ เทียบเท่ากับการทำงาน:
139 ObjectMapper registerModules(Module... modules)- วิธีการที่สะดวกในการลงทะเบียนโมดูลที่ระบุตามลำดับ เทียบเท่ากับการทำงาน:
140 void registerSubtypes(NamedType... types) - วิธีการลงทะเบียนคลาสที่ระบุเป็นประเภทย่อยเพื่อให้ความละเอียดตามชื่อสามารถเชื่อมโยงซูเปอร์ไทป์กับประเภทย่อยได้ (เป็นทางเลือกในการใช้คำอธิบายประกอบ)
141 ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - วิธีการตั้งค่า AnnotationIntrospector ที่ใช้โดยอินสแตนซ์ mapper นี้สำหรับทั้ง serialization และ deserialization
142 ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - วิธีการเปลี่ยนอินสแตนซ์ AnnotationIntrospector ที่อินสแตนซ์ mapper นี้ใช้สำหรับ serialization และ deserialization โดยระบุแยกกันเพื่อให้สามารถใช้วิปัสสนาที่แตกต่างกันสำหรับแง่มุมต่างๆ
143 ObjectMapper setBase64Variant(Base64Variant v) - วิธีการที่จะกำหนดค่า Base64Variant เริ่มต้นที่ไบต์ [] serializers และ deserializers จะใช้
144 ObjectMapper setConfig(DeserializationConfig config) - วิธีที่อนุญาตให้ลบล้างอ็อบเจ็กต์ DeserializationConfig ที่อยู่ภายใต้
145 ObjectMapper setConfig(SerializationConfig config) - วิธีที่อนุญาตให้ลบล้างอ็อบเจ็กต์ SerializationConfig ที่อยู่ภายใต้ซึ่งมีการตั้งค่าคอนฟิกูเรชันเฉพาะการทำให้เป็นอนุกรม
146 ObjectMapper setDateFormat(DateFormat dateFormat) - วิธีการกำหนดค่า DateFormat เริ่มต้นเพื่อใช้เมื่อกำหนดค่าเวลาแบบอนุกรมเป็น Strings และแยกจาก JSON Strings
147 ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - วิธีการระบุ PrettyPrinter เพื่อใช้เมื่อเปิดใช้งาน "default pretty-printing" (โดยการเปิดใช้งาน SerializationFeature.INDENT_OUTPUT)
148 ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - วิธีการเปิดใช้งานการรวมข้อมูลประเภทโดยอัตโนมัติโดยใช้อ็อบเจ็กต์ตัวจัดการที่ระบุเพื่อพิจารณาว่าประเภทนี้มีผลต่อประเภทใดตลอดจนรายละเอียดวิธีการฝังข้อมูล
149 ObjectMapper setFilterProvider(FilterProvider filterProvider) - วิธีการกำหนดค่าตัวทำแผนที่นี้เพื่อใช้ FilterProvider ที่ระบุสำหรับการแมปรหัสตัวกรองกับอินสแตนซ์ตัวกรองจริง
150 Object setHandlerInstantiator(HandlerInstantiator hi) - วิธีการกำหนดค่า HandlerInstantiator เพื่อใช้ในการสร้างอินสแตนซ์ของตัวจัดการ (เช่น serializers, deserializers, type และ type id resolvers) โดยได้รับคลาส
151 ObjectMapper setInjectableValues(InjectableValues injectableValues) - วิธีการกำหนดค่า InjectableValues ​​ซึ่งใช้ในการค้นหาค่าที่จะฉีด
152 ObjectMapper setLocale(Locale l) - วิธีการแทนที่ตำแหน่งที่ตั้งเริ่มต้นเพื่อใช้ในการจัดรูปแบบ
153 void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)- เลิกใช้แล้ว ตั้งแต่ 2.5: แทนที่ด้วยรูปแบบวิธีการที่คล่องแคล่ว setMixIns (java.util.Map <java.lang.Class <?>, java.lang.Class <? >>)
154 ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - วิธีการที่สามารถเรียกเพื่อระบุตัวแก้ไขที่กำหนดสำหรับการค้นหาคลาสมิกซ์อินที่จะใช้แทนที่การแมปที่เพิ่มโดยตรง
155 ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - วิธีการที่จะใช้ในการกำหนดคำอธิบายประกอบแบบผสมเพื่อใช้สำหรับการเพิ่มคำอธิบายประกอบที่คลาสที่ประมวลผลได้ (ต่อเนื่องกันได้ / deserializable) มี
156 ObjectMapper setNodeFactory(JsonNodeFactory f) - วิธีการระบุ JsonNodeFactory เพื่อใช้ในการสร้างโหนดต้นไม้ระดับรูท (ผ่านเมธอด createObjectNode ()
157 ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - วิธีการตั้งค่ากลยุทธ์การรวมคุณสมบัติ POJO เริ่มต้นสำหรับการทำให้เป็นอนุกรม
158 ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - วิธีการตั้งค่ากลยุทธ์การตั้งชื่อคุณสมบัติที่กำหนดเองที่จะใช้
159 ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - วิธีการสะดวกเทียบเท่ากับการโทร:
160 ObjectMapper setSerializerFactory(SerializerFactory f) - วิธีการตั้งค่า SerializerFactory เฉพาะเพื่อใช้สำหรับสร้าง serializers (bean)
161 ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - วิธีการตั้งค่าอินสแตนซ์ SerializerProvider "พิมพ์เขียว" เพื่อใช้เป็นฐานสำหรับอินสแตนซ์ของผู้ให้บริการจริงเพื่อใช้สำหรับจัดการแคชอินสแตนซ์ JsonSerializer
162 ObjectMapper setSubtypeResolver(SubtypeResolver str) - วิธีการตั้งค่าตัวแก้ไขชนิดย่อยที่กำหนดเองเพื่อใช้
163 ObjectMapper setTimeZone(TimeZone tz) - วิธีการลบล้าง TimeZone เริ่มต้นเพื่อใช้ในการจัดรูปแบบ
164 ObjectMapper setTypeFactory(TypeFactory f) - วิธีที่สามารถใช้เพื่อแทนที่อินสแตนซ์ TypeFactory ที่ใช้โดยผู้ทำแผนที่นี้
165 ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - วิธีอำนวยความสะดวกที่อนุญาตให้เปลี่ยนการกำหนดค่าสำหรับ VisibilityCheckers ที่อยู่ภายใต้การเปลี่ยนแปลงรายละเอียดของคุณสมบัติประเภทใดที่ตรวจพบอัตโนมัติ
166 ObjectMapper setVisibility(VisibilityChecker<?> vc) - วิธีการตั้งค่า VisibilityChecker ที่กำหนดค่าไว้ในปัจจุบันอ็อบเจ็กต์ที่ใช้ในการพิจารณาว่าองค์ประกอบคุณสมบัติที่กำหนด (วิธีการฟิลด์ตัวสร้าง) สามารถตรวจพบอัตโนมัติหรือไม่
167 void setVisibilityChecker(VisibilityChecker<?> vc)- เลิกใช้แล้ว ตั้งแต่ 2.6 ใช้ setVisibility (VisibilityChecker) แทน
168 JsonParser treeAsTokens(TreeNode n) - วิธีการสร้าง JsonParser จากการแทนแผนภูมิ JSON
169 <T> T treeToValue(TreeNode n, Class<T> valueType) - วิธีการแปลงที่สะดวกซึ่งจะผูกข้อมูลที่กำหนดให้โครงสร้าง JSON ประกอบด้วยค่าเฉพาะ (โดยทั่วไปคือชนิด bean)
170 <T extends JsonNode> T valueToTree(Object fromValue)- ย้อนกลับของ treeToValue (com.fasterxml.jackson.core.TreeNode, java.lang.Class <T>); เมื่อกำหนดค่า (โดยทั่วไปคือ bean) จะสร้างการแทนค่า JSON Tree ที่เทียบเท่า
171 Version version() - วิธีการที่จะส่งคืนข้อมูลเวอร์ชันที่จัดเก็บและอ่านจาก jar ที่มีคลาสนี้
172 ObjectWriter writer() - วิธีการที่สะดวกสำหรับการสร้าง ObjectWriter ด้วยการตั้งค่าเริ่มต้น
173 ObjectWriter writer(Base64Variant defaultBase64) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะใช้ตัวแปรการเข้ารหัส Base64 ที่ระบุสำหรับข้อมูลไบนารีที่เข้ารหัส Base64
174 ObjectWriter writer(CharacterEscapes escapes) -
175 ObjectWriter writer(ContextAttributes attrs) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะใช้แอตทริบิวต์เริ่มต้นที่ระบุ
176 ObjectWriter writer(DateFormat df)- วิธีการของโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้ DateFormat ที่ระบุ หรือถ้าผ่านโมฆะโดยใช้การประทับเวลา (หมายเลข 64 บิต
177 ObjectWriter writer(FilterProvider filterProvider) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้ผู้ให้บริการตัวกรองที่ระบุ
178 ObjectWriter writer(FormatSchema schema) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะส่งผ่านวัตถุสคีมาเฉพาะไปยัง JsonGenerator ที่ใช้สำหรับการเขียนเนื้อหา
179 ObjectWriter writer(PrettyPrinter pp) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้เครื่องพิมพ์สวยที่ระบุสำหรับการเยื้อง (หรือถ้าเป็นโมฆะไม่มีเครื่องพิมพ์ที่สวยงาม)
180 ObjectWriter writer(SerializationFeature feature) - วิธีการจากโรงงานในการสร้าง ObjectWriter โดยเปิดใช้งานคุณลักษณะที่ระบุไว้ (เทียบกับการตั้งค่าที่อินสแตนซ์ mapper นี้มี)
181 ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - วิธีการจากโรงงานในการสร้าง ObjectWriter พร้อมคุณสมบัติที่ระบุเปิดใช้งาน (เทียบกับการตั้งค่าที่อินสแตนซ์ mapper นี้มี)
182 ObjectWriter writerFor(Class<?> rootType) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้ประเภทรูทที่ระบุแทนค่าประเภทรันไทม์จริง
183 ObjectWriter writerFor(JavaType rootType) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้ประเภทรูทที่ระบุแทนค่าประเภทรันไทม์จริง
184 ObjectWriter writerFor(TypeReference<?> rootType) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้ประเภทรูทที่ระบุแทนค่าประเภทรันไทม์จริง
185 ObjectWriter writerWithDefaultPrettyPrinter() - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้เครื่องพิมพ์สวยเริ่มต้นสำหรับการเยื้อง
186 ObjectWriter writerWithType(Class<?> rootType)- เลิกใช้แล้ว ตั้งแต่ 2.5 ให้ใช้ writerFor (Class) แทน
187 ObjectWriter writerWithType(JavaType rootType)- เลิกใช้แล้ว ตั้งแต่ 2.5 ให้ใช้ writerFor (JavaType) แทน
188 ObjectWriter writerWithType(TypeReference<?> rootType)- เลิกใช้แล้ว ตั้งแต่ 2.5 ให้ใช้ writerFor (TypeReference) แทน
189 ObjectWriter writerWithView(Class<?> serializationView) - วิธีการจากโรงงานในการสร้าง ObjectWriter ที่จะทำให้วัตถุเป็นอนุกรมโดยใช้มุมมอง JSON (ตัวกรอง) ที่ระบุ
190 void writeTree(JsonGenerator jgen, JsonNode rootNode) - วิธีการทำให้เป็นอนุกรม JSON Tree ที่กำหนดโดยใช้เครื่องกำเนิดไฟฟ้าที่มีให้
191 void writeTree(JsonGenerator jgen, TreeNode rootNode)
192 void writeValue(DataOutput out, Object value)
193 void writeValue(File resultFile, Object value) - วิธีที่สามารถใช้เพื่อทำให้ค่า Java เป็นอนุกรมเป็นเอาต์พุต JSON เขียนลงในไฟล์ที่ให้มา
194 void writeValue(JsonGenerator g, Object value) - วิธีที่สามารถใช้เพื่อทำให้ค่า Java เป็นอนุกรมเป็นเอาต์พุต JSON โดยใช้ JsonGenerator ที่ให้มา
195 void writeValue(OutputStream out, Object value) - วิธีที่สามารถใช้เพื่อทำให้ค่า Java เป็นอนุกรมเป็นเอาต์พุต JSON โดยใช้เอาต์พุตสตรีมที่มีให้ (โดยใช้การเข้ารหัส JsonEncoding.UTF8)
196 void writeValue(Writer w, Object value) - วิธีที่สามารถใช้เพื่อทำให้ค่า Java เป็นอนุกรมเป็นเอาต์พุต JSON โดยใช้ Writer ที่ให้มา
197 byte[] writeValueAsBytes(Object value) - วิธีที่สามารถใช้เพื่อทำให้ค่า Java เป็นอนุกรมไบต์เป็นอาร์เรย์
198 String writeValueAsString(Object value) - วิธีการที่สามารถใช้เพื่อทำให้ค่า Java เป็นชุดสตริง

วิธีการสืบทอด

คลาสนี้สืบทอดวิธีการจากคลาสต่อไปนี้:

  • java.lang.Object

ObjectMapper ตัวอย่าง

สร้างโปรแกรม java ต่อไปนี้โดยใช้โปรแกรมแก้ไขที่คุณเลือกในการพูด C:/> Jackson_WORKSPACE

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

การทำให้เป็นอนุกรมของวัตถุ

มาทำให้วัตถุ java เป็นอนุกรมกับไฟล์ json แล้วอ่านไฟล์ json นั้นเพื่อรับวัตถุกลับมา ในตัวอย่างนี้เราได้สร้างชั้นเรียนนักเรียน เราจะสร้างไฟล์ student.json ซึ่งจะมีการแสดง json ของ Student object

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

Student [ name: Mahesh, age: 10 ]

การผูกข้อมูล

Data Binding API ใช้เพื่อแปลง JSON เป็นและจาก POJO (Plain Old Java Object) โดยใช้ตัวเข้าถึงคุณสมบัติหรือใช้คำอธิบายประกอบ เป็นสองประเภท

  • Simple Data Binding - แปลง JSON ไปและกลับจาก Java Maps, Lists, Strings, Numbers, Booleans และ null objects

  • Full Data Binding - แปลง JSON เป็นและจากประเภท JAVA ใด ๆ

ObjectMapper อ่าน / เขียน JSON สำหรับการเชื่อมโยงข้อมูลทั้งสองประเภท การผูกข้อมูลเป็นวิธีที่สะดวกที่สุดและคล้ายคลึงกับ JAXB parer สำหรับ XML

การผูกข้อมูลอย่างง่าย

การผูกข้อมูลอย่างง่ายหมายถึงการแมปประเภทข้อมูล JSON กับ JAVA Core ตารางต่อไปนี้แสดงความสัมพันธ์ระหว่างประเภท JSON กับประเภท Java

เลขที่ ประเภท JSON ประเภท Java
1 วัตถุ LinkedHashMap <String, Object>
2 อาร์เรย์ ArrayList <Object>
3 สตริง สตริง
4 หมายเลขที่สมบูรณ์ Integer, Long หรือ BigInteger
5 เลขเศษส่วน Double / BigDecimal
6 จริง | เท็จ บูลีน
7 โมฆะ โมฆะ

มาดูการทำงานของการเชื่อมโยงข้อมูลอย่างง่าย ที่นี่เราจะจับคู่ประเภทพื้นฐานของ JAVA กับ JSON โดยตรงและในทางกลับกัน

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

การผูกข้อมูลแบบเต็ม

การผูกข้อมูลแบบเต็มหมายถึงการแมป JSON กับวัตถุ JAVA ใด ๆ

//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);

มาดูการทำงานของการเชื่อมโยงข้อมูลอย่างง่าย ที่นี่เราจะแมป JAVA Object กับ JSON โดยตรงและในทางกลับกัน

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

Student [ name: Mahesh, age: 10 ]

การผูกข้อมูลกับ Generics

ในการผูกข้อมูลอย่างง่ายเราใช้คลาส Map ซึ่งใช้ String เป็นคีย์และ Object เป็นออบเจ็กต์ค่า แต่เราสามารถมีวัตถุ java คอนกรีตและพิมพ์เพื่อใช้ในการรวม JSON

พิจารณาตัวอย่างต่อไปนี้กับคลาส UserData ซึ่งเป็นคลาสที่เก็บข้อมูลเฉพาะของผู้ใช้

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

แบบจำลองต้นไม้

Tree Model เตรียมการแสดงแผนผังในหน่วยความจำของเอกสาร JSON ObjectMapper สร้างโครงสร้างของโหนด JsonNode เป็นแนวทางที่ยืดหยุ่นที่สุด เป็นตัวแยกวิเคราะห์ DOM สำหรับ XML

สร้าง Tree จาก JSON

ObjectMapper จัดเตรียมตัวชี้ไปยังโหนดรูทของทรีหลังจากอ่าน JSON Root Node สามารถใช้เพื่อสำรวจต้นไม้ที่สมบูรณ์ พิจารณาข้อมูลโค้ดต่อไปนี้เพื่อรับโหนดรูทของสตริง JSON ที่ให้มา

//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);

การข้ามแบบจำลองต้นไม้

รับแต่ละโหนดโดยใช้พา ธ สัมพัทธ์ไปยังโหนดรูทในขณะที่ข้ามทรีและประมวลผลข้อมูล พิจารณาข้อมูลโค้ดต่อไปนี้ที่ข้ามต้นไม้ที่มีให้กับโหนดรูท

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

ตัวอย่าง

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

ทรีเป็น JSON

ในตัวอย่างนี้เราได้สร้าง Tree โดยใช้ JsonNode และเขียนลงในไฟล์ json และอ่านย้อนกลับ

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

Tree เป็น Java Objects

ในตัวอย่างนี้เราได้สร้าง Tree โดยใช้ JsonNode และเขียนลงในไฟล์ json และอ่าน back tree แล้วแปลงเป็น Student object

สร้างไฟล์คลาส java ชื่อ JacksonTester ใน C:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

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

Streaming API

Streaming API อ่านและเขียนเนื้อหา JSON เป็นเหตุการณ์ที่ไม่ต่อเนื่อง JsonParser อ่านข้อมูลในขณะที่ JsonGenerator เขียนข้อมูล เป็นแนวทางที่ทรงพลังที่สุดในสามวิธีนี้และมีค่าใช้จ่ายต่ำสุดและเร็วที่สุดในการอ่าน / เขียน เป็นตัวแยกวิเคราะห์ Analogus เป็น Stax สำหรับ XML

ในบทความนี้เราจะแสดงโดยใช้ Jackson streaming API เพื่ออ่านและเขียนข้อมูล JSON Streaming API ทำงานร่วมกับแนวคิดของโทเค็นและทุกรายละเอียดของ Json จะต้องระมัดระวัง ต่อไปนี้เป็นสองคลาสที่เราจะใช้ในตัวอย่าง:

  • JsonGenerator - เขียนลงใน JSON String

  • JsonParser - แยกวิเคราะห์สตริง JSON

การเขียน JSON โดยใช้ JsonGenerator

การใช้ JsonGenerator นั้นค่อนข้างง่าย ขั้นแรกให้สร้าง JsonGenerator โดยใช้ JsonFactory.createJsonGenerator () วิธีการและใช้มันเขียน *** () วิธีการเขียนแต่ละค่า json

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

มาดูการดำเนินการของ JsonGenerator สร้างไฟล์คลาส java ชื่อ JacksonTester ในC:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

Mahesh Kumar
21
false
[100, 90, 85]

การอ่าน JSON โดยใช้ JsonParser

การใช้ JsonParser นั้นค่อนข้างง่ายอีกครั้ง ขั้นแรกให้สร้าง JsonParser โดยใช้เมธอด JsonFactory.createJsonParser () และใช้เมธอด nextToken () เพื่ออ่านสตริง json แต่ละตัวเป็นโทเค็น ตรวจสอบโทเค็นแต่ละรายการและดำเนินการตามนั้น

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());        	 
   }
}

มาดูการทำงานของ JsonParser กัน สร้างไฟล์คลาส java ชื่อ JacksonTester ในC:\>Jackson_WORKSPACE.

ไฟล์: 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

รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้:

C:\Jackson_WORKSPACE>javac JacksonTester.java

ตอนนี้เรียกใช้ jacksonTester เพื่อดูผลลัพธ์:

C:\Jackson_WORKSPACE>java JacksonTester

ตรวจสอบผลลัพธ์

Mahesh Kumar
21
false
[100, 90, 85]

คลาส JsonGenerator

บทนำ

JsonParser เป็นคลาสพื้นฐานในการกำหนด API สาธารณะสำหรับการอ่านเนื้อหา Json อินสแตนซ์ถูกสร้างขึ้นโดยใช้วิธีการจากโรงงานของอินสแตนซ์ JsonFactory

การประกาศคลาส

ต่อไปนี้เป็นคำประกาศสำหรับ org.codehaus.jackson.JsonParser ชั้น:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

ชั้นเรียนที่ซ้อนกัน

SN ชั้นเรียนและคำอธิบาย
1 static class JsonParser.Feature
การแจงนับที่กำหนดคุณลักษณะที่สลับได้ทั้งหมดสำหรับตัวแยกวิเคราะห์
2 static class JsonParser.NumberType
การแจงนับประเภท "เนทีฟ" ที่เป็นไปได้ (เหมาะสมที่สุด) ที่สามารถใช้เป็นตัวเลขได้

ฟิลด์

  • protected PrettyPrinter _cfgPrettyPrinter - วัตถุที่จัดการการพิมพ์สวย ๆ (โดยปกติจะมีพื้นที่สีขาวเพิ่มเติมเพื่อให้ผลลัพธ์ที่มนุษย์อ่านได้มากขึ้น) ระหว่างการส่งออก

  • protected JsonToken _currToken - โทเค็นล่าสุดถูกดึงผ่าน nextToken () ถ้ามี

  • protected int _features - แฟล็กบิตประกอบด้วยบิตที่ระบุว่า JsonParser ใดเปิดใช้งานคุณสมบัติ

  • protected JsonToken _lastClearedToken - โทเค็นที่ล้างล่าสุดถ้ามี: นั่นคือค่าที่มีผลเมื่อมีการเรียก clearCurrentToken ()

ตัวสร้าง

SN ตัวสร้างและคำอธิบาย
1 protected JsonParser()
ตัวสร้างเริ่มต้น
2 protected JsonParser(int features)

วิธีการเรียน

SN วิธีการและคำอธิบาย
1 protected void _reportError(String msg) - วิธีการช่วยเหลือที่ใช้ในการสร้างและโยน JsonGenerationException พร้อมข้อความพื้นฐานที่กำหนด
2 protected void _reportUnsupportedOperation()
3 protected void _throwInternal()
4 protected void _writeSimpleObject(Object value)- วิธีการช่วยเหลือเพื่อพยายามเรียกวิธีการเขียนที่เหมาะสมสำหรับวัตถุที่ไม่ได้พิมพ์ที่กำหนด
5 boolean canOmitFields() - วิธีการวิปัสสนาเพื่อเรียกตรวจสอบว่าสามารถละเว้นการเขียนฟิลด์ Object ได้หรือไม่
6 boolean canUseSchema(FormatSchema schema) - วิธีการที่สามารถใช้เพื่อตรวจสอบว่าสคีมาที่กำหนดสามารถใช้กับตัวสร้างนี้ได้ (โดยใช้ setSchema (com.fasterxml.jackson.core.FormatSchema))
7 boolean canWriteBinaryNatively()- วิธีการวิปัสสนาที่อาจเรียกเพื่อดูว่ารูปแบบข้อมูลพื้นฐานรองรับข้อมูลไบนารี "เนทีฟ" หรือไม่ นั่นคือผลลัพธ์ที่มีประสิทธิภาพของเนื้อหาไบนารีโดยไม่ต้องเข้ารหัส
8 boolean canWriteObjectId() - เมธอด Introspection ที่อาจเรียกเพื่อดูว่ารูปแบบข้อมูลพื้นฐานรองรับ Object Ids บางประเภทหรือไม่ (ส่วนมากไม่ได้เช่น JSON ไม่ได้)
9 boolean canWriteTypeId() - วิธีการวิปัสสนาที่อาจเรียกเพื่อดูว่ารูปแบบข้อมูลที่อยู่เบื้องหลังรองรับรหัสประเภทบางประเภทโดยกำเนิดหรือไม่ (ส่วนมากไม่ได้เช่น JSON ไม่ได้)
10 abstract void close() - วิธีที่เรียกว่าปิดตัวสร้างนี้เพื่อไม่ให้เขียนเนื้อหาได้อีก
11 JsonGenerator configure(JsonGenerator.Feature f, boolean state) - วิธีการเปิดหรือปิดใช้งานคุณสมบัติที่ระบุ: ตรวจสอบ JsonGenerator คุณลักษณะสำหรับรายการคุณสมบัติที่มี
12 void copyCurrentEvent(JsonParser jp) - วิธีการคัดลอกเนื้อหาของเหตุการณ์ปัจจุบันที่อินสแตนซ์ตัวแยกวิเคราะห์ที่ระบุชี้ไป
13 void copyCurrentStructure(JsonParser jp) - วิธีการคัดลอกเนื้อหาของเหตุการณ์ปัจจุบันและเหตุการณ์ต่อไปนี้ที่ล้อมรอบอินสแตนซ์ตัวแยกวิเคราะห์ที่ระบุไว้
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) - วิธีการเปิดใช้งานคุณสมบัติตัวแยกวิเคราะห์ที่ระบุ: ตรวจสอบ JsonGenerator คุณลักษณะสำหรับรายการคุณสมบัติที่มี
16 abstract void flush() - วิธีการที่เรียกว่าเพื่อล้างเนื้อหาที่บัฟเฟอร์ไปยังเป้าหมายพื้นฐาน (สตรีมเอาต์พุต, ตัวเขียน) และเพื่อล้างเป้าหมายด้วยเช่นกัน
17 CharacterEscapes getCharacterEscapes() - วิธีการเข้าถึงโรงงาน Escape แบบกำหนดเองที่ใช้สำหรับ JsonGenerators ที่สร้างขึ้น
18 abstract ObjectCodec getCodec() - วิธีการเข้าถึงอ็อบเจ็กต์ที่ใช้สำหรับเขียนอ็อบเจ็กต์ Java เป็นเนื้อหา Json (โดยใช้เมธอด writeObject (java.lang.Object))
19 abstract int getFeatureMask() - วิธีการเข้าถึงจำนวนมากเพื่อรับสถานะของ JsonGenerator มาตรฐานทั้งหมดคุณสมบัติ
20 int getHighestEscapedChar() - วิธีการเข้าถึงสำหรับการทดสอบอักขระที่ไม่ใช้ Escape สูงสุดที่กำหนดค่าไว้สำหรับเครื่องกำเนิดไฟฟ้านี้
21 abstract JsonStreamContext getOutputContext()
22 Object getOutputTarget()- วิธีการที่สามารถใช้เพื่อเข้าถึงวัตถุที่ใช้เป็นเป้าหมายสำหรับผลลัพธ์ที่สร้างขึ้น โดยปกติจะเป็น OutputStream หรือ Writer ขึ้นอยู่กับว่าเครื่องกำเนิดไฟฟ้าสร้างขึ้นด้วยอะไร
23 PrettyPrinter getPrettyPrinter()- Accessor สำหรับตรวจสอบว่าเครื่องกำเนิดไฟฟ้านี้มีการกำหนดค่า PrettyPrinter ไว้หรือไม่ คืนค่าถ้าเป็นเช่นนั้นค่าว่างหากไม่มีการกำหนดค่า
24 FormatSchema getSchema() - วิธีการเข้าถึง Schema ที่โปรแกรมแยกวิเคราะห์นี้ใช้ถ้ามี
25 abstract boolean isClosed() - วิธีการที่สามารถเรียกเพื่อตรวจสอบว่าเครื่องกำเนิดไฟฟ้านี้ปิดอยู่หรือไม่
26 abstract boolean isEnabled(JsonGenerator.Feature f) - วิธีตรวจสอบว่าเปิดใช้งานคุณสมบัติที่กำหนดหรือไม่
27 JsonGenerator setCharacterEscapes(CharacterEscapes esc)- วิธีการกำหนดค่า Escape ที่กำหนดเองที่โรงงานใช้สำหรับ JsonGenerators ที่สร้างขึ้น
28 abstract JsonGenerator setCodec(ObjectCodec oc)- วิธีการที่สามารถเรียกเพื่อตั้งค่าหรือรีเซ็ตวัตถุเพื่อใช้สำหรับการเขียนวัตถุ Java เป็น JsonContent (โดยใช้เมธอด writeObject (java.lang.Object))
29 abstract JsonGenerator setFeatureMask(int mask)-Bulk set method สำหรับ (re) การตั้งค่าสถานะของ JsonGenerator มาตรฐานทั้งหมดคุณสมบัติ
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) - วิธีการตั้งค่าเครื่องพิมพ์พริตตี้แบบกำหนดเองซึ่งโดยปกติจะใช้เพื่อเพิ่มการเยื้องเพื่อให้มนุษย์อ่านง่ายขึ้น
32 JsonGenerator setRootValueSeparator(SerializableString sep) - วิธีที่อนุญาตให้แทนที่สตริงที่ใช้สำหรับการแยกค่า JSON ระดับรูท (ค่าเริ่มต้นคืออักขระช่องว่างเดียว)
33 void setSchema(FormatSchema schema) - วิธีการโทรเพื่อให้เครื่องกำเนิดไฟฟ้านี้ใช้สคีมาที่ระบุ
33 abstract JsonGenerator useDefaultPrettyPrinter()- วิธีอำนวยความสะดวกในการเปิดใช้งานการพิมพ์สวยโดยใช้เครื่องพิมพ์สวยเริ่มต้น (DefaultPrettyPrinter)
34 abstract Version version()- Accessor สำหรับค้นหาเวอร์ชันของบันเดิลที่ให้อินสแตนซ์เครื่องกำเนิดไฟฟ้านี้
35 void writeArrayFieldStart(String fieldName)- วิธีอำนวยความสะดวกในการส่งออกรายการฟิลด์ ("สมาชิก") (ซึ่งจะมีค่า JSON Array) และเครื่องหมาย START_ARRAY
36 abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- วิธีที่จะส่งออกข้อมูลไบนารีที่ได้รับการเข้ารหัส base64 เป็นค่าสตริงที่สมบูรณ์ (ล้อมรอบด้วยเครื่องหมายคำพูดคู่)
37 abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - วิธีการคล้ายกับ writeBinary (Base64Variant, byte [], int, int) แต่โดยที่อินพุตถูกจัดเตรียมผ่านสตรีมทำให้สามารถเขียนส่วนเพิ่มได้โดยไม่ต้องเก็บอินพุตทั้งหมดไว้ในหน่วยความจำ
38 void writeBinary(byte[] data)- คล้ายกับ writeBinary (Base64Variant, byte [], int, int) แต่ถือว่าเป็นค่าเริ่มต้นในการใช้ตัวแปร Base64 เริ่มต้นของ Jackson (ซึ่งก็คือ Base64Variants.MIME_NO_LINEFEEDS)
39 void writeBinary(byte[] data, int offset, int len) - คล้ายกับ writeBinary (Base64Variant, byte [], int, int) แต่ค่าเริ่มต้นจะใช้ตัวแปร Base64 เริ่มต้นของ Jackson (ซึ่งก็คือ Base64Variants.MIME_NO_LINEFEEDS)
40 int writeBinary(InputStream data, int dataLength) - คล้ายกับ writeBinary (Base64Variant, InputStream, int) แต่ถือว่าเป็นค่าเริ่มต้นในการใช้ตัวแปร Base64 เริ่มต้นของ Jackson (ซึ่งก็คือ Base64Variants.MIME_NO_LINEFEEDS)
41 void writeBinaryField(String fieldName, byte[] data) - วิธีอำนวยความสะดวกสำหรับการส่งออกรายการฟิลด์ ("สมาชิก") ที่มีข้อมูลที่ระบุในรูปแบบที่เข้ารหัส base64
42 abstract void writeBoolean(boolean state) - วิธีการส่งออกค่าบูลีน Json ตามตัวอักษร (หนึ่งในสตริง 'จริง' และ 'เท็จ')
43 void writeBooleanField(String fieldName, boolean value) - วิธีอำนวยความสะดวกสำหรับการส่งออกรายการฟิลด์ ("สมาชิก") ที่มีค่าบูลีน
44 abstract void writeEndArray() - วิธีการเขียนเครื่องหมายปิดของค่า JSON Array (อักขระ ']' รวมทั้งการตกแต่งพื้นที่สีขาวที่เป็นไปได้หากเปิดใช้งานการพิมพ์แบบสวย)
45 abstract void writeEndObject() - วิธีการเขียนเครื่องหมายปิดของค่า JSON Object (อักขระ '}' และการตกแต่งพื้นที่สีขาวที่เป็นไปได้หากเปิดใช้งานการพิมพ์แบบสวย)
46 abstract void writeFieldName(SerializableString name) - วิธีการคล้ายกับ writeFieldName (String) ความแตกต่างหลักคืออาจทำงานได้ดีกว่าในการประมวลผลบางอย่าง (เช่นการอ้างถึงอักขระบางตัวหรือการเข้ารหัสเป็นการเข้ารหัสภายนอกหากเครื่องกำเนิดไฟฟ้ารองรับ) สามารถทำได้เพียงครั้งเดียวและใช้ซ้ำสำหรับการโทรในภายหลัง
47 abstract void writeFieldName(String name) - วิธีการเขียนชื่อเขตข้อมูล (สตริง JSON ที่ล้อมรอบด้วยเครื่องหมายคำพูดคู่: ไวยากรณ์เหมือนกับค่าสตริง JSON) อาจตกแต่งด้วยพื้นที่สีขาวหากเปิดใช้งานการพิมพ์แบบสวย
48 abstract void writeNull() - วิธีการส่งออกค่า Null Json ตามตัวอักษร
49 void writeNullField(String fieldName) - วิธีอำนวยความสะดวกสำหรับการส่งออกรายการฟิลด์ ("สมาชิก") ที่มีค่าลิเทอรัล JSON เป็นโมฆะ
50 abstract void writeNumber(BigDecimal dec) - วิธีการส่งออกระบุค่าตัวเลข Json
51 abstract void writeNumber(BigInteger v) - วิธีการส่งออกค่าที่กำหนดเป็นหมายเลข Json
52 abstract void writeNumber(double d) - วิธีการส่งออกระบุค่าตัวเลข Json
53 abstract void writeNumber(float f) - วิธีการส่งออกระบุค่าตัวเลข Json
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