แจ็คสัน - คู่มือฉบับย่อ
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 ใด ๆ
ลองใช้ตัวเลือกออนไลน์
คุณไม่จำเป็นต้องตั้งค่าสภาพแวดล้อมของคุณเองเพื่อเริ่มเรียนรู้ 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