java 生成JSON字符串: import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; //如何生成JSON字符串,有七種狀況 /* * 運用JSON解析時:將實體類的屬性變量設置爲公共的,去掉get和set方法也行 */ public class ShengChengJsonUtils { //第1種:{"id":11,"age":23,"name":"張三"}要建一個學生實體類,這是官方版JSON:注意要導包 public static String createJSON_01(){ Student student=new Student(11,23,"張三"); JSONObject obj=new JSONObject(student); //實體類沒有set和get方法時會打印空 return obj.toString(); } // 第2種:{"student":{"id":11,"age":20,"name":"張三"}} public static String createJSON_02(){ Student student=new Student(11,23,"張三"); JSONObject obj=new JSONObject(student); JSONObject obj2=new JSONObject(); try { obj2.put("student", obj); } catch (JSONException e) { e.printStackTrace(); } return obj2.toString(); } // 第3種:{"student":{"id":11,"age":23,"name":"張三"},"class_name":"and1510"} public static String createJSON_03(){ //這裏用到myclass因此建一個class實體類 Student student=new Student(11,23,"張三"); MyClass myclass=new MyClass("and1510", student); JSONObject obj=new JSONObject(myclass); return obj.toString(); } /* * 第4種 :{"list":[{"id":11,"age":23,"name":"張三"}, * {"id":12,"age":22,"name":"李四"}],"class_name":"and1510"} */ public static String createJSON_04(){ //這裏用到myclass2因此建一個class實體類,並且是數組 Student student=new Student(11,23,"張三"); Student student2=new Student(12,22,"李四"); List<Student>list=new ArrayList<Student>(); list.add(student); list.add(student2); MyClass2 myclass2=new MyClass2("and1510", list); JSONObject obj=new JSONObject(myclass2); return obj.toString(); } /** * 第5種 * [{"id":11,"age":23,"name":"張三"},{"id":12,"age":22,"name" * :"張三"}] */ public static String createJSON_05(){ Student student=new Student(11,23,"張三"); Student student2=new Student(12,22,"李四"); List<Student>list=new ArrayList<Student>(); list.add(student); list.add(student2); JSONArray objarr=new JSONArray(list); return objarr.toString(); } /**第6種 * {"students":[{"id":11,"age":22,"name":"張三"},{"id":12,"age":22,"name" * :"李四"}]} */ public static String createJSON_06(){ Student student=new Student(11,23,"張三"); Student student2=new Student(12,22,"李四"); List<Student>list=new ArrayList<Student>(); list.add(student); list.add(student2); JSONArray objarr=new JSONArray(list); JSONObject obj=new JSONObject(); try { obj.put("students", objarr); } catch (JSONException e) { e.printStackTrace(); } return obj.toString(); } /**第7種 * {"myclass":{"list":[{"id":11,"age":23,"name":"張三"},{"id":12,"age":22,"name" * :"李四"}],"class_name":"and1510"}} */ public static String createJSON_07(){ Student student=new Student(11,23,"張三"); Student student2=new Student(12,22,"李四"); List<Student>list=new ArrayList<Student>(); list.add(student); list.add(student2); MyClass2 myClass2=new MyClass2("and1510", list); JSONObject obj=new JSONObject(myClass2); JSONObject obj2=new JSONObject(); try { obj2.put("myclass", obj); } catch (JSONException e) { e.printStackTrace(); } return obj2.toString(); } } 解析JSON字符串: import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.ObjectToJson.ShengChengJsonUtils; //官方JSON解析 //將JSON字符串解析成對象的幾種狀況的工具類 //運用JSON解析時:將實體類的屬性變量設置爲公共的,去掉get和set方法也行 public class ParserJsonToObjectUtils { // 第1:{"id":11,"age":22,"name":"張三"} public static void ParseJsonToObject_01(){ String json=ShengChengJsonUtils.createJSON_01(); System.out.println("需解析的json字符串:--> "+json); try { JSONObject obj=new JSONObject(json); Student student=new Student(); int id=obj.getInt("id"); int age=obj.getInt("age"); String name=obj.getString("name"); student.setId(id); student.setAge(age); student.setName(name); System.out.println("解析結果:"); System.out.println(student); } catch (JSONException e) { e.printStackTrace(); } } // 第2種:{"student":{"id":11,"age":20,"name":"張三"}} public static void ParseJsonToObject_02() throws JSONException{ String json=ShengChengJsonUtils.createJSON_02(); System.out.println("需解析的json字符串:--> "+json); JSONObject obj=new JSONObject(json); JSONObject obj2=obj.getJSONObject("student");//經過鍵student得到JSONObject對象 Student student=new Student(); //再從JSONObject對象中得到指定值所對應的值。並賦給Student int id=obj2.getInt("id"); int age=obj2.getInt("age"); String name=obj2.getString("name"); student.setId(id); student.setAge(age); student.setName(name); System.out.println("解析結果:"); System.out.println(student); } // 第3種:{"student":{"id":11,"age":23,"name":"張三"},"class_name":"and1510"} public static void ParseJsonToObject_03() throws JSONException{ String json=ShengChengJsonUtils.createJSON_03(); System.out.println("需解析的json字符串:--> "+json); JSONObject obj=new JSONObject(json); MyClass myClass=new MyClass(); String class_name=obj.getString("class_name"); myClass.setClass_name(class_name); JSONObject obj2=obj.getJSONObject("student");//經過鍵student得到JSONObject對象 Student student=new Student(); //再從JSONObject對象中得到指定值所對應的值。並賦給Student int id=obj2.getInt("id"); int age=obj2.getInt("age"); String name=obj2.getString("name"); student.setId(id); student.setAge(age); student.setName(name); myClass.setStudent(student); System.out.println("解析結果:"); System.out.println(myClass); } /* * 第4種 :{"list":[{"id":11,"age":23,"name":"張三"}, * {"id":12,"age":22,"name":"李四"}],"class_name":"and1510"} */ public static void ParseJsonToObject_04() throws JSONException{ String json=ShengChengJsonUtils.createJSON_04(); System.out.println("需解析的json字符串:--> "+json); JSONObject obj=new JSONObject(json); MyClass2 myClass2=new MyClass2(); myClass2.setClass_name(obj.getString("class_name")); JSONArray objarr=obj.getJSONArray("list");//經過鍵list得到JSONObject對象 List<Student>list=new ArrayList<Student>(); Student student=new Student(); //再從JSONObject對象中得到指定值所對應的值。並賦給Student for(int i=0;i<objarr.length();i++){ JSONObject obj2= objarr.getJSONObject(i); student.setId(obj2.getInt("id")); student.setAge(obj2.getInt("age")); student.setName(obj2.getString("name")); list.add(student); } myClass2.setList(list); System.out.println("解析結果:"); System.out.println(myClass2); } /** * 第5種 * [{"id":11,"age":23,"name":"張三"},{"id":12,"age":22,"name" * :"張三"}] */ public static void ParseJsonToObject_05() throws JSONException{ String json=ShengChengJsonUtils.createJSON_05(); System.out.println("需解析的json字符串:--> "+json); JSONArray objarr=new JSONArray(json); List<Student>list=new ArrayList<Student>(); Student student=new Student(); //再從JSONObject對象中得到指定值所對應的值。並賦給Student for(int i=0;i<objarr.length();i++){ JSONObject obj= objarr.getJSONObject(i); student.setId(obj.getInt("id")); student.setAge(obj.getInt("age")); student.setName(obj.getString("name")); list.add(student); } System.out.println("解析結果:"); for(Student s:list){ System.out.println(s); } } /**第6種 * {"students":[{"id":11,"age":22,"name":"張三"},{"id":12,"age":22,"name" * :"李四"}]} */ public static void ParseJsonToObject_06() throws JSONException{ String json=ShengChengJsonUtils.createJSON_06(); System.out.println("需解析的json字符串:--> "+json); JSONObject obj=new JSONObject(json); JSONArray objarr=obj.getJSONArray("students"); List<Student>list=new ArrayList<Student>(); Student student=new Student(); //再從JSONObject對象中得到指定值所對應的值。並賦給Student for(int i=0;i<objarr.length();i++){ JSONObject obj2= objarr.getJSONObject(i); student.setId(obj2.getInt("id")); student.setAge(obj2.getInt("age")); student.setName(obj2.getString("name")); list.add(student); } System.out.println("解析結果:"); for(Student s:list){ System.out.println(s); } } /**第7種 * {"myclass":{"list":[{"id":11,"age":23,"name":"張三"},{"id":12,"age":22,"name" * :"李四"}],"class_name":"and1510"}} */ public static void ParseJsonToObject_07() throws JSONException{ String json=ShengChengJsonUtils.createJSON_07(); System.out.println("需解析的json字符串:--> "+json); JSONObject obj=new JSONObject(json); MyClass2 myClass2=new MyClass2(); JSONObject obj2=obj.getJSONObject("myclass"); myClass2.setClass_name(obj2.getString("class_name")); JSONArray array=obj2.getJSONArray("list"); List<Student>list=new ArrayList<Student>(); Student student=new Student(); //再從JSONObject對象中得到指定值所對應的值。並賦給Student for(int i=0;i<array.length();i++){ JSONObject obj3= array.getJSONObject(i); student.setId(obj3.getInt("id")); student.setAge(obj3.getInt("age")); student.setName(obj3.getString("name")); list.add(student); } myClass2.setList(list); System.out.println("解析結果:"); System.out.println(myClass2); } } 實體類1: public class Student { private int id; private int age; private String name; public Student(int id, int age, String name) { super(); this.id = id; this.age = age; this.name = name; } @Override public String toString() { return "Student [id=" + id + ", age=" + age + ", name=" + name + "]"; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Student() { super(); } } 實體類2: public class MyClass { private String class_name; private Student student; @Override public String toString() { return "MyClass [class_name=" + class_name + ", student=" + student + "]"; } public String getClass_name() { return class_name; } public void setClass_name(String class_name) { this.class_name = class_name; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public MyClass(String class_name, Student student) { super(); this.class_name = class_name; this.student = student; } public MyClass() { super(); } } 實體類3: import java.util.List; public class MyClass2 { private String class_name; private List<Student>list; public MyClass2(String class_name, List<Student> list) { super(); this.class_name = class_name; this.list = list; } @Override public String toString() { return "MyClass2 [class_name=" + class_name + ", list=" + list + "]"; } public String getClass_name() { return class_name; } public void setClass_name(String class_name) { this.class_name = class_name; } public List<Student> getList() { return list; } public void setList(List<Student> list) { this.list = list; } public MyClass2() { super(); // TODO Auto-generated constructor stub } }