Die ObjectMapper -Klasse ist die Hauptklasse der Jackson -Bibliothek. Es bietet einige Funktionen, die in Java -Objekte umgewandelt werden, um JSON -Strukturen zu entsprechen und umgekehrt. Es verwendet Fälle von JsonParser und Jsongenerator, um das tatsächliche Lesen/Schreiben von JSON zu implementieren.
Klassenerklärung
Das Folgende ist die Erklärung der org.codeehaus.jackson.map.ObjectMapper Klasse:
ObjectMapper der öffentlichen Klasse erweitert ObjectCodec implementiert Versioned
Verschachtelte Klassen
| Sn | Klasse & Beschreibung |
|---|---|
| 1 | statische Klasse ObjectMapper.DefaulttypeSolverbuilder // Anpassen von Typeresolverbuilder und Bereitstellung der sogenannten "Standardeingabe" unter Verwendung von Typ-Auflösungs-Builder (siehe EnabledFaulttyPing () für Details). |
| 2 | Statische Klasse ObjectMapper.Defaulttyping // Verwenden Sie EnabledFaulttyPing () Aufzählung, um anzugeben, welcher Typ (Klasse) Die Standardeingabe sollte verwendet werden. |
| Sn | Konstruktor & Beschreibung |
|---|---|
| 1 | ObjectMapper () // Standardkonstruktor, mit dem die Standard -JSONFACTORY erstellt wird, um StdserializerProvider als SerializerProvider und BeanSerializerFactory als SerializerFactory zu verwenden. |
| 2 | ObjectMapper (JSONFACTORY JF) // Konstruieren Sie die erforderlichen JsonParsers und/oder Jsongenerators -Karten mit den angegebenen JSONFactory. |
| 3 | ObjectMapper (JSONFACTORY JF, SerializerProvider SP, DeserializerProvider DP) |
| 4 | ObjectMapper (JSONFACTORY JF, SerializerProvider SP, DeserializerProvider DP, SerializationConfig SCONFIG, DeserializationConfig DConfig) |
| 5 | ObjectMapper (SerializerFactory SF) wird nicht empfohlen. Verwenden Sie stattdessen andere Konstrukte; Beachten Sie, dass Sie die Serialisierungsfabrik SetSerializerFactory festlegen können (org.codeehaus.jackson.map.SerializerFactory) |
Der Grundcode der Beispiel -Testklasse lautet wie folgt
/ * * @Project Java * @package * @file Jackson.java * @Version 1.0 * /public Class Jackson { / * * * Class -Beschreibung geht hierher. * * @class Jackson * @Version 1.0 */ public static Jsongenerator Jsongenerator = null; private static ObjectMapper Mapper = new ObjectMapper (); public static void main (String [] args) {student student = new student (); student.setisStudent (wahr); student.setuid (1000); student.Setuname ("xiao liao"); student.setUpwd ("123"); student.setNumber (12); Karte <String, Student> Stumap = New HashMap <String, Student> (); stumap.put ("1", Student); stumap.put ("2", Student); LIST <Object> stulist = new ArrayList <Object> (); LIST <Sudent> stulist1 = new ArrayList <Student> (); stulist1.add (Student); Student = neuer Schüler (); student.setisStudent (falsch); student.setuid (200); Student.Setuname ("Xiao Mi"); stulist1.add (Student); Stulist.Add (Student); stulist.add (stucent xin "); stulist.add (" xiao er "); stulist.add (stumap); // readjson2List (); try {// Readjson2Array (); // WriteArray2json (Array); // WriteJson2list (); //sabtity2json (student); // Writemap2Json (Stumap); Schreiben 2JSON (Objektobjekt) löscht ioException {mapper.writeValue (neue Datei ("d: //developsoft/aaadowload//testjson1//lib//aa.txt"), Objekt); Todo (Array konvertiert in JSON Array) * @Param Objekt * @throws ioException */public static void WriteArray2json (Objektobjekt) löst IOException aus {// writeValue hat die gleiche Funktion wie writeObject mappper.writevalue (neue Datei ("d: //developy/aaaad/aaad/aaad/aaad/aaAd./aaadows ); System.out.println ("ObjectMapper verwenden ----------------") // WriteValue hat die gleiche Funktion wie writeObject system.out.println ("==>"+mapper.writeValueasString (Objekt)); Datei ("d: //developsoft//aaadowload//testjson1//lib//aamap.txt"), Objekt); Writelist2JSON (Objektobjekt) löst ioException {System.out.println ("==>"+mapper.writevalueString (Objekt)); ); Datei ("d: //developsoft//aaadowload//testjson1//lib//aa.txt"); output // mapper.defaultprintingWriter (). WriteValuEasString (Wert); mapper.readValue (json, student.class); System.out.println ("JSON-String zu Entity ---------------"); System.out.println (student.toString ()); mi/",/" uPwd/": null,/" number/": 0.0,/" isStudent/": false}]" list <linkedHashMap <String <String >> S = mapper.readvalue (json, list.class); key = link.keyset () für (iterator iterator = key.iterator (); iterator }/*** JSON wird in das Listenobjekt konvertiert*/public static void readjson2List () {String json = "[{/" uid/": 1,/" uname/":/" www/",/" number/": 234,/" upwd/":/" 456/"}," + + + + + + + + + + + "{/"uid/":5,/"uname/":/en i <list.size (); (JsonParseException E) {E.PrintStackTrace (); "[{/" uid/": 1,/" uname/":/" www/",/" number/": 234,/" uPwd/":/" 456/"}," + "{/"uid/":5,/"Utwd/" Student [] maper.readValue (JSON, Student []. Klasse); {e.printstacktrace ();Druckergebnis:
串转换成 Entity ------------- JSON2: uid = 1000, name = xiao liao, upwd = 123, number = 12.0, isstudent = truewritemap2json ----------- {"2": {"UID": 1000, "uname": "xiao liao "," upwd ":" 123 "," nummer ": 12.0," isStudent ": true}," 1 ": {" uid ": 1000," uname ":" xiao liao "," upwd ":" 123 "," number ": 12.0," isStudent ": true}} readjson2array ------------------------------------------------------------------------------------------------------------ ------------- {"2": {"uid": 1000, "uname": "xiao liao", "upwd": "123", "Nummer": 12.0, "IsStudent": true}, "1": {"uid": 1000, "uname": "xiao liao "," upwd ":" 123 "," number ": 12.0," isStudent ": true}}Alle, probieren Sie es selbst aus, das obige ist auch mein Testcode