欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java對象與json對象間的相互轉(zhuǎn)換的方法

 更新時間:2017年01月06日 12:01:00   作者:gchb9527  
本篇文章主要介紹了java對象與json對象間的相互轉(zhuǎn)換的方法,詳細(xì)介紹了json字符串和java對象相互轉(zhuǎn)換,有興趣的可以了解一下

工程中所需的jar包,因?yàn)樵诰W(wǎng)上不太好找,所以我將它放到我的網(wǎng)盤里了,如有需要隨便下載。

點(diǎn)擊下載

1.簡單的解析json字符串

首先將json字符串轉(zhuǎn)換為json對象,然后再解析json對象,過程如下。

JSONObject jsonObject = JSONObject.fromObject(jsonStr);

根據(jù)json中的鍵得到它的值

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

2.將json字符串轉(zhuǎn)換為java對象

同樣先將json字符串轉(zhuǎn)換為json對象,再將json對象轉(zhuǎn)換為java對象,如下所示。

JSONObject obj = new JSONObject().fromObject(jsonStr);
//將json字符串轉(zhuǎn)換為json對象

將json對象轉(zhuǎn)換為java對象

Person jb = (Person)JSONObject.toBean(obj,Person.class);
//將建json對象轉(zhuǎn)換為Person對象

3.將java對象轉(zhuǎn)換為json字符串

先將java對象轉(zhuǎn)換為json對象,在將json對象轉(zhuǎn)換為json字符串

JSONObject json = JSONObject.fromObject(obj);

//將java對象轉(zhuǎn)換為json對象
String str = json.toString();//將json對象轉(zhuǎn)換為字符串

完整代碼如下:

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字符串轉(zhuǎn)換為java對象 
  public Person JSON2Object(){ 
    //接收{(diào)}對象,此處接收數(shù)組對象會有異常 
    if(jsonStr.indexOf("[") != -1){ 
      jsonStr = jsonStr.replace("[", ""); 
    } 
    if(jsonStr.indexOf("]") != -1){ 
      jsonStr = jsonStr.replace("]", ""); 
    } 
    JSONObject obj = new JSONObject().fromObject(jsonStr);//將json字符串轉(zhuǎn)換為json對象 
    Person jb = (Person)JSONObject.toBean(obj,Person.class);//將建json對象轉(zhuǎn)換為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對象轉(zhuǎn)換為json字符串

package baz.cons; 
 import net.sf.json.JSONObject; 
 /** 
 * 將java對象轉(zhuǎn)換為json字符串 
 * @author Administrator 
 * 
 */ 
public class ConsJson { 
   
  public ConsJson() { 
    // TODO Auto-generated constructor stub 
  } 
   
  public String Object2Json(Object obj){ 
    JSONObject json = JSONObject.fromObject(obj);//將java對象轉(zhuǎn)換為json對象 
    String str = json.toString();//將json對象轉(zhuǎn)換為字符串 
     
    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) { 
     
    //將字符串轉(zhuǎn)換為json對象,然后根據(jù)建得到相應(yīng)的值 
    ParseJson pj = new ParseJson("{\"name\":\"gu\",\"num\":123456,\"sex\":\"male\",\"age\":24}"); 
    pj.parse(); 
     
    //將一個json字符串轉(zhuǎn)換為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對象轉(zhuǎn)換為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"}

這只是最簡單使用方法,其他的使用我會在后期中更新。以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java雙色球系統(tǒng)開發(fā)詳解

    Java雙色球系統(tǒng)開發(fā)詳解

    這篇文章主要為大家詳細(xì)介紹了Java雙色球系統(tǒng)的開發(fā),超級簡單的邏輯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java中的ThreadLocal線程池原理

    Java中的ThreadLocal線程池原理

    這篇文章主要介紹了Java中的ThreadLocal線程池原理,ThreadLocal提供了線程的局部變量(或本地變量),它可以保證訪問到的變量屬于當(dāng)前線程,每個訪問這種變量的線程(通過它的get或set方法)都有自己的、獨(dú)立初始化的變量副本,需要的朋友可以參考下
    2023-11-11
  • Java 8 Stream操作類型及peek示例解析

    Java 8 Stream操作類型及peek示例解析

    這篇文章主要介紹了Java 8 Stream操作類型及peek示例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java壓縮文件工具類ZipUtil使用方法代碼示例

    Java壓縮文件工具類ZipUtil使用方法代碼示例

    這篇文章主要介紹了Java壓縮文件工具類ZipUtil使用方法代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11
  • SpringBoot3整合Druid的兼容性問題解決方案

    SpringBoot3整合Druid的兼容性問題解決方案

    Druid對于SpringBoot3的支持不夠全面和友好;存在一些兼容性的問題,導(dǎo)致項目報錯,所以本文小編給大家介紹了如何解決SpringBoot3整合Druid的兼容性問題,需要的朋友可以參考下
    2023-09-09
  • Spring和SpringBoot有哪些區(qū)別

    Spring和SpringBoot有哪些區(qū)別

    相信對于用了 SpringBoot很久的同學(xué)來說,還不是很理解 SpringBoot到底和 Spring有什么區(qū)別,看完文章中的比較,或許你有了不同的答案和看法。
    2020-10-10
  • jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)

    jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)

    Jmeter用于接口測試時,后一個接口經(jīng)常需要用到前一次接口返回的結(jié)果,本文主要介紹了jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Hibernate延遲加載原理與實(shí)現(xiàn)方法

    Hibernate延遲加載原理與實(shí)現(xiàn)方法

    這篇文章主要介紹了Hibernate延遲加載原理與實(shí)現(xiàn)方法,較為詳細(xì)的分析了Hibernate延遲加載的概念,原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • IDEA 自動生成 JPA 實(shí)體類的圖文教程

    IDEA 自動生成 JPA 實(shí)體類的圖文教程

    這篇文章主要介紹了IDEA 自動生成 JPA 實(shí)體類的圖文教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 使用Java實(shí)現(xiàn)在PDF插入頁眉頁腳

    使用Java實(shí)現(xiàn)在PDF插入頁眉頁腳

    在處理PDF文檔時,有時需要為文檔中的每一頁添加頁眉和頁腳,這篇文章主要為大家詳細(xì)介紹了如何使用Java為PDF文件添加頁眉、頁腳,感興趣的可以了解下
    2024-03-03

最新評論