La classe ObjectMapper est la classe principale de la bibliothèque Jackson. Il fournit des fonctionnalités qui seront converties en objets Java pour correspondre aux structures JSON et vice versa. Il utilise des instances de JSonParser et JSongenerator pour implémenter la lecture / l'écriture réelle de JSON.
Déclaration de classe
Ce qui suit est la déclaration de la classe org.codehaus.jackson.map.objectmapper:
classe publique ObjectMapper étend ObjectCodec implémente version
Classes imbriquées
| Sn | Classe et description |
|---|---|
| 1 | Classe statique ObjectMapper.DefaultTypereSolverBuilder // Personnalisez TyperesolverBuilder, fournissant la soi-disant "entrée par défaut" à l'aide du constructeur de résolution de type (voir ENableDeFaultTyping () pour plus de détails). |
| 2 | Classe statique ObjectMapper.DefaultTyping // Utiliser ENableDefaultTyping () Énumération pour spécifier quel type (classe) l'entrée par défaut doit être utilisée. |
| Sn | Constructeur et description |
|---|---|
| 1 | ObjectMapper () // Constructeur par défaut, qui créera le JSONFactory par défaut si nécessaire pour utiliser StdSerializerProvider comme SerializerProvider et BeanSerializerFactory comme SerializerFactory. |
| 2 | ObjectMapper (JSONFactory JF) // Construisez les cartes JSonParsers et / ou JSongenerators nécessaires à l'aide du JSONFactory spécifié. |
| 3 | ObjectMapper (JSONFactory JF, Serializerprovider SP, DeserializerProvider DP) |
| 4 | ObjectMapper (JSONFactory JF, Serializerprovider SP, DeserializerProvider DP, SerializationConfig Sconfig, DeserializationConfig dconfig) |
| 5 | ObjectMapper (SerializerFactory SF) n'est pas recommandé. Utilisez à la place d'autres constructions; Notez que vous pouvez définir l'usine de sérialisation SetSerializerFactory (org.codehaus.jackson.map.serializerfactory) |
Le code de base de l'exemple de classe de test est le suivant
/ * * @project java * @package * @file jackson.java * @version 1.0 * / public class Jackson {/ * * * class Descripton va ici. * * @class jackson * @version 1.0 * / public static jsongenerator jsongenerator = null; Private Static ObjectMapper Mapper = new ObjectMapper (); public static void main (String [] args) {étudiant étudiant = new student (); Student.setSistudent (true); Student.SetUid (1000); Student.SetUname ("Xiao liao"); Student.SetUpwd ("123"); Student.SetNumber (12); Map <string, student> stumap = new HashMap <String, Student> (); Stumap.put ("1", étudiant); Stumap.put ("2", étudiant); List <object> stulist = new ArrayList <Bject> (); Liste <Student> Stulist1 = new ArrayList <Student> (); Stulist1.add (étudiant); étudiant = nouveau étudiant (); Student.setSistudent (false); Student.setuid (200); Student.SetUname ("Xiao Mi"); Stulist1.add (étudiant); Stulist.add (étudiant); Stulist.Add (Stucent Xin "); Stulist.Add (" Xiao er "); Stulist.Add (Stumap); // ReadJson2List (); Try {// Readjson2Array (); // WriteArray2Json (Array); // WriteJson2List (); // Writeentity2json (Student); Writejson2enty (); // WriteMap2json (stumap); Writeentity2json (objet objet) lance ioException {make.writeValue (nouveau fichier ("d: //developsoft//aaadowload//testjson1//lib//aa.txt"), objet); TODO (Array Converted en JSON Array) * @param objet * @throws ioException * / public static void writeArray2json (objet objet) lève ioException {// writeValue a la même fonction que writeObject Mappper.WriteValue (new File (D: //developsoft//aaadowload//testjson1//lib//aa.txt "), objet); MAPPPER.WRITEVALUE (System.out, objet); 2011-11-8 liao yiping * / public static void writeMap2json (objet objet) lance ioException {System.out.println ("Utiliser ObjectMapper ----------------"); File (D: //developsoft//aaadowload//testjson1//lib//aamap.txt "), objet); WriteList2json (objet Object) lance ioException {System.out.println ("==>" + mapper.writevalueaSString (objet)); ); File (d: //developsoft//aaadowload//testjson1//lib//aa.txt "); output // mappen MAPER.READVALUE (JSON, Student.Class); System.out.println ("JSON String to Entity ---------------"); File File = new File (D: //Developsoft//aaadowload//testjson1//lib//aa.txt "); System.out.println (Student.ToString ()); string json = "[{/" uid / ": 1000, /" uname / ": /" xiao liao / ", /" upwd / ": /" 123 / " MI / ", /" upwd / ": null, /" numéro / ": 0,0, /" isStudent / ": false}]"; key = link.keyset (); } / ** * JSON est converti en List Object * / public static void ReadjSon2List () {String json = "[{/" uid / ": 1, /" uname / ": /" www / ", /" numéro / ": 234, /" upwd / ": /" 456 / "}," + "{/"uid/":5 ,/"uname/":/"tom/" ,/"number/":30 ,/"upwd/":/"123/"}] "; i <list.size (); i ++) {map <string, object> map = list.get (i); (JSONPARSEException e) {E.PrintStackTrace ();} Catch (JSONMappingException e) {E.PrintStackTrace (); "[{/" uid / ": 1, /" uname / ": /" www / ", /" numéro / ": 234, /" upwd / ": /" 456 / "}," + "{/"uid/":5 ,/"uname/":/"tom/" ,/ great/":3 Student [] Students = Mappeur.ReadValue (JSON, Student []. e.printStackTrace ();}}}Résultat d'impression:
串转换成 Entité ------------- JSON2: UID = 1000, name = xiao liao, upwd = 123, numéro = 12.0, iSStudent = trueWriteMap2json ----------- {"2": {"uid": 1000, "uname": "Xiao liao "," upwd ":" 123 "," nombre ": 12.0," istudent ": true}," 1 ": {" uid ": 1000," uname ":" xiao liao "," upwd ":" 123 "," nombre ": 12.0," isStudent ": true}} Readjson2Array ----------------------------> uid = 1, name = www, upwd = 456, numéro = 234.0, iSstudent = false> uid = 5, name = tom, upwd = 123, numéro = 3.44, est-ce ------------- {"2": {"uid": 1000, "uname": "xiao liao", "upwd": "123", "nombre": 12.0, "istudent": true}, "1": {"uid": 1000, "uname": "xiao liao "," upwd ":" 123 "," nombre ": 12.0," istudent ": true}}Tout le monde, essayez-le par vous-même, ce qui précède est aussi mon code de test