java对象与json对象、json字符串、字符串之间的 相互转换

1.简单的解析json字符串

首先将json字符串转换为json对象,然后再解析json对象,过程如下。

JSONObject jsonObject = JSONObject.fromObject(jsonStr);

  根据json中的键得到它的值

String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInt("age");

 

2.将json字符串转换为java对象

同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。

JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

将json对象转换为java对象

Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

3.将java对象转换为json字符串

先将java对象转换为json对象,在将json对象转换为json字符串

JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象

String str = json.toString();//将json对象转换为字符串

完整代码如下:

  1. package baz.parse;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import net.sf.json.JSON;  
  7. import net.sf.json.JSONArray;  
  8. import net.sf.json.JSONObject;  
  9. import net.sf.json.JSONSerializer;  
  10. import baz.bean.Person;  
  11.   
  12. public class ParseJson {  
  13.       
  14.     private String jsonStr;  
  15.       
  16.     public ParseJson() {  
  17.           
  18.     }  
  19.       
  20.     public ParseJson(String str){  
  21.         this.jsonStr = str;  
  22.     }  
  23.     /** 
  24.      * 解析json字符串 
  25.      */  
  26.     public void parse(){  
  27.         JSONObject jsonObject = JSONObject.fromObject(jsonStr);  
  28.         String name = jsonObject.getString("name");  
  29.         int num = jsonObject.getInt("num");  
  30.         String sex = jsonObject.getString("sex");  
  31.         int age = jsonObject.getInt("age");  
  32.           
  33.         System.out.println(name + " " + num + " " + sex + " " + age);  
  34.     }  
  35.     //将json字符串转换为java对象  
  36.     public Person JSON2Object(){  
  37.         //接收{}对象,此处接收数组对象会有异常  
  38.         if(jsonStr.indexOf("[") != -1){  
  39.             jsonStr = jsonStr.replace("[", "");  
  40.         }  
  41.         if(jsonStr.indexOf("]") != -1){  
  42.             jsonStr = jsonStr.replace("]", "");  
  43.         }  
  44.         JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象  
  45.         Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象  
  46.         return jb;//返回一个Person对象  
  47.     }  
  48.       
  49. }  
  50. package baz.bean;  
  51.   
  52. public class Person {  
  53.       
  54.     private String name;  
  55.     private int num;  
  56.     private String sex;  
  57.     private int age;  
  58.       
  59.     public Person() {  
  60.         // TODO Auto-generated constructor stub  
  61.     }  
  62.     public Person(String name, int num, String sex, int age) {  
  63.         super();  
  64.         this.name = name;  
  65.         this.num = num;  
  66.         this.sex = sex;  
  67.         this.age = age;  
  68.     }  
  69.  
  70.     public String getName() {  
  71.         return name;  
  72.     }  
  73.   
  74.     public void setName(String name) {  
  75.         this.name = name;  
  76.     }  
  77.   
  78.     public int getNum() {  
  79.         return num;  
  80.     }  
  81.   
  82.     public void setNum(int num) {  
  83.         this.num = num;  
  84.     }  
  85.   
  86.     public String getSex() {  
  87.         return sex;  
  88.     }  
  89.   
  90.     public void setSex(String sex) {  
  91.         this.sex = sex;  
  92.     }  
  93.   
  94.     public int getAge() {  
  95.         return age;  
  96.     }  
  97.   
  98.     public void setAge(int age) {  
  99.         this.age = age;  
  100.     }  
  101.       
  102. }  

 将java对象转换为json字符串

  1. package baz.cons;  
  2. import net.sf.json.JSONObject;  
  3.  * 将java对象转换为json字符串 
  4.  * @author Administrator 
  5.  * 
  6.  */  
  7. public class ConsJson {  
  8.       
  9.     public ConsJson() {  
  10.         // TODO Auto-generated constructor stub  
  11.     }  
  12.       
  13.     public String Object2Json(Object obj){  
  14.         JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象  
  15.         String str = json.toString();//将json对象转换为字符串  
  16.           
  17.         return str;  
  18.     }  
  19. }  

你可能感兴趣的:(json)