ジャクソンオブジェクトのシリアル化
ここでは、JSONファイルにシリアル化Javaオブジェクトを導入し、JSONファイルを読み取り、オブジェクトに変換します。この例では、学生クラスが作成されます。 JSONでStudent.jsonファイルで表現される学生オブジェクトを作成します。
c:/> jackson_workspaceでJacksontesterという名前のJavaクラスファイルを作成します。
ファイル:JackSontester.java
java.io.file; Import java.io.ioexception; Import org.codehaus.jackson.jsongenerationecception; Import org.codehaus.jackson.jacsparseexception; import org.codehaus.jackson.map.jsonmappingexception; void main(string args []){jacksontester tester = new JackSontester(); try {desute desute = new Student(); Student.Setage(10); Student.setName( "Mahesh"); tester.writejson(学生); 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(学生学生)jsongenerationexception、jsonmappingexception、ioexception {objectmapper mapper = new objectMapper(); mapper.writevalue(new file( "desutent.json")、desudent); } private Student readjson()throws jsonparseexception、jsonmappingexception、ioexception {objectmapper mapper = new objectMapper();学生学生= mapper.readValue(new file( "Student.json")、Student.Class);学生を返します。 }} class Student {private string name;プライベートインクエイジ; 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 "sudent [name:"+ name+ "、age:"+ age+ "]"; }}検証結果
Javacを使用して、次のクラスをコンパイルします。
コードコピーは次のとおりです。
C:/jackson_workspace> javac jacksontester.java
次に、JackSontesterを実行して結果を確認します。
コードコピーは次のとおりです。
C:/jackson_workspace> Java JackSontester
検証出力の結果は次のようにコピーされます。
学生[名前:マヘシュ、年齢:10]
ジャクソンデータバインディングジェネリック
単純なデータバインディングでは、文字列をキーオブジェクトとして使用し、クラスを値オブジェクトとしてマッピングします。代わりに、特定のJavaオブジェクトとタイプを使用してJSONにキャストできます。
ユーザー固有のデータを保存するために、クラスユーザーDataを使用して次の例を考えてみましょう。
JavaクラスファイルC:/> Jackson_WorkspaceにJackSontesterというディレクトリを作成します。
ファイル名:jacksontester.java
java.io.fileをインポート; java.io.ioexception;インポートJava.util.arrays; Import java.util.hashmap; import java.util.list; import java.util.map; import org.codehaus.jackson.jsongenerationexception; Import.Code.Jackson.jsonporsexsception; org.codehaus.jackson.map.jsonmappingexception; import org.codehaus.jackson.japt.objectmapper; Import org.codehaus.jackson.type.typereference; public class jacksontester {public static void main(string args []){jacksonterester tester = new jacksonter(); try {objectMapper mapper = new objectMapper(); map userdatamap = new Hashmap(); userData sustentData = new userData(); int [] marks = {1,2,3};学生学生= new Student(); Student.Setage(10); Student.setName( "Mahesh"); // Java Object StudentData.setStudent(desute); // Java String StudentData.setName( "Mahesh Kumar"); // Java Boolean StudentData.SetVerified(boolean.false); // Array StudentData.SetMarks(マーク); Typereference Ref = new Typereference>(){}; userdatamap.put( "studentdata1"、studentdata); mapper.writeValue(new File( "sustent.json")、userdatamap); // {// "StudentData1":// {// "Student":// {// "name": "mahesh"、// "age":10 //}、// "name": "mahesh kumar"、// "verified":fals、// "marks":[1,2,3] file( "sustent.json")、ref); system.out.println(userdatamap.get( "sustentData1")。getStudent()); system.out.println(userdatamap.get( "studentData1")。getName()); system.out.println(userdatamap.get( "sustentData1")。getverified()); system.out.println(arrays.toString(userdatamap.get( "dustentData1")。getMarks())); } catch(jsonparseexception e){e.printstacktrace(); } catch(jsonmappingException e){e.printstacktrace(); } catch(ioexception e){e.printstacktrace(); }}} class Student {private string name;プライベートインクエイジ; 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 "sudent [name:"+ name+ "、age:"+ age+ "]"; }} class userdata {private desute student;プライベート文字列名;プライベートブール確認。プライベートint []マーク。 public userData(){} public Student getStudent(){return Student; } public void setStudent(学生学生){this.student = sudine; } 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; }}出力を確認します
Javacを使用して、次のクラスをコンパイルします。
コードコピーは次のとおりです。
C:/jackson_workspace> javac jacksontester.java
次に、JackSontesterを実行して結果を確認します。
コードコピーは次のとおりです。
C:/jackson_workspace> Java JackSontester
出力を確認します
学生[名前:Mahesh、Age:10] Mahesh Kumarfalse [1、2、3]