您的位置:首页 > Web前端 > JavaScript

简单生成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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: