简单生成JSON字符串和运用官方版本的JSON简单解析
2016-01-09 00:00
253 查看
摘要: 简单生成JSON字符串和运用官方版本的JSON简单解析
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 } }
相关文章推荐
- 官方JSON配合FastJSON一起运用的几种解析情况
- js代码优化注意事项
- 页面加载完前执行所有的js代码 解决方案
- D3.js-坐标轴生成测试SVG
- How to get the query string by javascript?
- How to get the query string by javascript?
- JavaScript的那些坑之事件代理
- js中的对象与数组
- js实用篇之数组、字符串常用方法
- javascript的Function 和其 Arguments
- How to get the query string by javascript?
- Javascript判断一个数字是否在一个区间内
- jsp学习中遇到的问题
- js 模拟ajax方式提交数据
- 用js来传参到父网页实现
- 初次尝试写技术blog
- JS获取按下的键盘字符
- JS常用对象
- Json.net 常用使用小结
- HTML、javascript与CSS