当前位置: 移动技术网 > IT编程>开发语言>Java > java对象与json对象间的相互转换的方法

java对象与json对象间的相互转换的方法

2019年07月22日  | 移动技术网IT编程  | 我要评论

工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载。


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对象转换为字符串

完整代码如下:

package baz.parse; 
 
import java.util.arraylist; 
import java.util.list; 
 
import net.sf.json.json; 
import net.sf.json.jsonarray; 
import net.sf.json.jsonobject; 
import net.sf.json.jsonserializer; 
import baz.bean.person; 
 
public class parsejson { 
   
  private string jsonstr; 
   
  public parsejson() { 
     
  } 
   
  public parsejson(string str){ 
    this.jsonstr = str; 
  } 
  /** 
   * 解析json字符串 
   */ 
  public void parse(){ 
    jsonobject jsonobject = jsonobject.fromobject(jsonstr); 
    string name = jsonobject.getstring("name"); 
    int num = jsonobject.getint("num"); 
    string sex = jsonobject.getstring("sex"); 
    int age = jsonobject.getint("age"); 
     
    system.out.println(name + " " + num + " " + sex + " " + age); 
  } 
  //将json字符串转换为java对象 
  public person json2object(){ 
    //接收{}对象,此处接收数组对象会有异常 
    if(jsonstr.indexof("[") != -1){ 
      jsonstr = jsonstr.replace("[", ""); 
    } 
    if(jsonstr.indexof("]") != -1){ 
      jsonstr = jsonstr.replace("]", ""); 
    } 
    jsonobject obj = new jsonobject().fromobject(jsonstr);//将json字符串转换为json对象 
    person jb = (person)jsonobject.tobean(obj,person.class);//将建json对象转换为person对象 
    return jb;//返回一个person对象 
  } 
   
 
} 
package baz.bean; 
 
public class person { 
   
  private string name; 
  private int num; 
  private string sex; 
  private int age; 
   
  public person() { 
    // todo auto-generated constructor stub 
  } 
 
  public person(string name, int num, string sex, int age) { 
    super(); 
    this.name = name; 
    this.num = num; 
    this.sex = sex; 
    this.age = age; 
  } 
 
 
 
  public string getname() { 
    return name; 
  } 
 
  public void setname(string name) { 
    this.name = name; 
  } 
 
  public int getnum() { 
    return num; 
  } 
 
  public void setnum(int num) { 
    this.num = num; 
  } 
 
  public string getsex() { 
    return sex; 
  } 
 
  public void setsex(string sex) { 
    this.sex = sex; 
  } 
 
  public int getage() { 
    return age; 
  } 
 
  public void setage(int age) { 
    this.age = age; 
  } 
   
} 

将java对象转换为json字符串

package baz.cons; 
 import net.sf.json.jsonobject; 
 /** 
 * 将java对象转换为json字符串 
 * @author administrator 
 * 
 */ 
public class consjson { 
   
  public consjson() { 
    // todo auto-generated constructor stub 
  } 
   
  public string object2json(object obj){ 
    jsonobject json = jsonobject.fromobject(obj);//将java对象转换为json对象 
    string str = json.tostring();//将json对象转换为字符串 
     
    return str; 
  } 
} 

测试类:

package baz.test; 
 
import java.util.list; 
 
import baz.bean.person; 
import baz.cons.consjson; 
import baz.parse.parsejson; 
 
 
public class test { 
  public static void main(string[] args) { 
     
    //将字符串转换为json对象,然后根据建得到相应的值 
    parsejson pj = new parsejson("{\"name\":\"gu\",\"num\":123456,\"sex\":\"male\",\"age\":24}"); 
    pj.parse(); 
     
    //将一个json字符串转换为java对象 
    person p = pj.json2object(); 
    system.out.println("name:" + p.getname()); 
    system.out.println("num:" + p.getnum()); 
    system.out.println("sex:" + p.getsex()); 
    system.out.println("age:" + p.getage()); 
     
    //将一个java对象转换为json字符串 
    person p1 = new person("gu1",123,"male",23); 
    consjson cj = new consjson(); 
    string str1 = cj.object2json(p1); 
    system.out.println(str1); 
     
  } 
 
} 

测试输出如下:

gu 123456 male 24
name:gu
num:123456
sex:male
age:24

{"age":23,"name":"gu1","num":123,"sex":"male"}

这只是最简单使用方法,其他的使用我会在后期中更新。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网