当前位置 博文首页 > 文章内容

    常用json与javabean互转的方法实现

    作者:21344 栏目:未分类 时间:2021-04-07 14:44:13

    JSONObject 与 JSONArray区别

    JSONObject:

    {
    	"area": "武汉",
    	"name": "张三",
    	"age": 25
    	}
    

    JSONArray:

    		[{
    		“area”: “武汉”,
    		“name”: “张三”,
    		“age”: 25
    		},
    		{
    		“area”: “深圳”,
    		“name”: “李四”,
    		“age”: 22
    		}]
    

    通俗来讲 JSONObject 是对象的json形式 JSONArry 是对象集合的JSON形式。

    JSON 与javabean互转

    JSON用阿里的fastjson 包

    用例java对象

    public class User {
    
     protected Long id;
     protected String account;
     protected String password;
     protected String name;
     protected boolean gender;
     protected String telephone;
    
     @Override
     public String toString() {
      return "User{" +
        "id=" + id +
        ", account='" + account + '\'' +
        ", password='" + password + '\'' +
        ", name='" + name + '\'' +
        ", gender=" + gender +
        ", telephone='" + telephone + '\'' +
        '}';
     }
    
     public boolean isGender() {
      return gender;
     }
    
     public void setGender(boolean gender) {
      this.gender = gender;
     }
    
     public String getTelephone() {
      return telephone;
     }
    
     public void setTelephone(String telephone) {
      this.telephone = telephone;
     }
    
     public String getName() {
      return name;
     }
    
     public void setName(String name) {
      this.name = name;
     }
    
     public Long getId() {
      return id;
     }
    
     public void setId(Long id) {
      this.id = id;
     }
    
     public String getAccount() {
      return account;
     }
    
     public void setAccount(String account) {
      this.account = account;
     }
    
     public String getPassword() {
      return password;
     }
    
     public void setPassword(String password) {
      this.password = password;
     }
    }
    
    

    1、javabean转json

    方法一:通过java对象转成String再转成JSONObject

    package com.handoop.gms.utils;
    
    import com.alibaba.fastjson.JSONObject;
    import com.handoop.gms.domain.User;
    
    public class TestMain {
     public static void main(String []args){
      //先通过构造函数初始化一个对象
      User user=new User((long) 1,"admin","admin","张三",true,"123456");
      //先将java对象转为String类型
      String jsonString= JSONObject.toJSONString(user);
      //再将String类型转为JSONObject
      JSONObject jsonObject=JSONObject.parseObject(jsonString);
      System.out.println(jsonObject);
      //转为JSONObject后就可以随时根据键值获取他的元素了
      System.out.println(jsonObject.get("password"));
    
     }
    }
    
    

    运行结果

    运行结果

    方法2:java对象直接转json

    package com.handoop.gms.utils;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import com.handoop.gms.domain.User;
    
    public class TestMain {
     public static void main(String []args){
      //先通过构造函数初始化一个对象
      User user=new User((long) 1,"admin","admin","张三",true,"123456");
      JSONObject jsonObject= (JSONObject) JSONObject.toJSON(user);
      System.out.println(jsonObject);
     }
    }
    
    

    运行结果

    json字符串转JSONObeject

    public class TestMain {
     public static void main(String []args){
      String str="{\"password\":\"admin\",\"gender\":true,\"name\":\"张三\",\"telephone\":\"123456\",\"id\":1,\"account\":\"admin\"}";
      JSONObject jsonObject=JSONObject.parseObject(str);
      System.out.println("account: "+jsonObject.get("account")+"---"+"paasword: "+jsonObject.get("password"));
     }
    }
    

    运行结果

    在这里插入图片描述

    3.jsonString 转JSONArray

    public class TestMain {
     public static void main(String []args){
    
      String str="{\"data\":[{\"password\":\"admin\",\"gender\":true,\"name\":\"张三\",\"telephone\":\"123456\",\"id\":1,\"account\":\"admin\"}]}";
      //先转成JSONObject
      JSONObject jsonObject=JSONObject.parseObject(str);
      //再将JSONObject中数组类型数据取出转成JSONArray
      JSONArray jsonArray=jsonObject.getJSONArray("data");
      System.out.println(jsonArray.get(0));
     }
    }
    
    

    运行结果

    在这里插入图片描述

    4.JSON字符串转JAVA对象

       String str="{\"password\":\"admin\",\"gender\":true,\"name\":\"张三\",\"telephone\":\"123456\",\"id\":1,\"account\":\"admin\"}";
       // 前面是JSON字符串 后面是java对象类型
       User user=JSONObject.parseObject(str,User.class);
       System.out.println("account: "+user.getAccount()+"---"+"paasword: "+user.getPassword());
    

    输出结果

    在这里插入图片描述