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

 更新时间:2017年01月06日 12:01:00   作者:gchb9527  
本篇文章主要介绍了java对象与json对象间的相互转换的方法,详细介绍了json字符串和java对象相互转换,有兴趣的可以了解一下

工程中所需的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"}

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

相关文章

  • 详解如何在项目中应用SpringSecurity权限控制

    详解如何在项目中应用SpringSecurity权限控制

    本文主要介绍了如何在项目中应用SpringSecurity权限控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 详解Spring的@Value作用与使用场景

    详解Spring的@Value作用与使用场景

    这篇文章主要介绍了详解Spring的@Value作用与使用场景,Spring为大家提供许多开箱即用的功能,@Value就是一个极其常用的功能,它能将配置信息注入到bean中去,需要的朋友可以参考下
    2023-05-05
  • 详解使用spring aop实现业务层mysql 读写分离

    详解使用spring aop实现业务层mysql 读写分离

    本篇文章主要介绍了使用spring aop实现业务层mysql 读写分离,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Java类型转换valueOf与parseInt区别探讨解析

    Java类型转换valueOf与parseInt区别探讨解析

    这篇文章主要为大家介绍了Java类型转换valueOf与parseInt区别探讨解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Spring基础之AOP的概念介绍

    Spring基础之AOP的概念介绍

    AOP是Spring的关键特性之一,虽然Spring的IOC特性并不依赖于AOP,本文重点介绍AOP编程中的一些术语,这些术语不仅仅局限于Spring,它适用于所有的AOP编程,感兴趣的朋友一起看看吧
    2022-06-06
  • Java实现RSA算法的方法详解

    Java实现RSA算法的方法详解

    这篇文章主要介绍了Java实现RSA算法的方法,结合实例形式分析了RSA算法的原理、实现与使用方法,需要的朋友可以参考下
    2018-03-03
  • Spring Security单项目权限设计过程解析

    Spring Security单项目权限设计过程解析

    这篇文章主要介绍了Spring Security单项目权限设计过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • SpringBoot整合ES多个精确值查询 terms功能实现

    SpringBoot整合ES多个精确值查询 terms功能实现

    这篇文章主要介绍了SpringBoot整合ES多个精确值查询 terms功能实现,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • 基于java中cookie和session的比较

    基于java中cookie和session的比较

    下面小编就为大家带来一篇基于java中cookie和session的比较。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 详解如何使用Java编写图形化的窗口

    详解如何使用Java编写图形化的窗口

    这篇文章主要介绍了如何使用Java编写图形化的窗口,是Java的本地GUI软件开发的基础,需要的朋友可以参考下
    2015-10-10

最新评论