Json学习:json解析、json转换成java对象和java对象转换成json

在开发中我们常用到对josn对象进行解析,json转换成java对象和java对象转换成json。
对于这些操作相互转换,我们进行学习和说明:
对于以上实现需要用到jar包进行下载(整理了一份,可以根据链接到百度云盘进行下载,永久有效):
链接:https://pan.baidu.com/s/1pICGN-kS5nNhlYXmOG1dIQ 提取码:hrbr

创建实体类Person:
package com.test07.json;

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;
} 

}

1.josn对象进行解析
package com.test07.json;

import net.sf.json.JSONObject;

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对象  
@SuppressWarnings("static-access")
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对象  
} */

}

2.json转换成java对象
//将json字符串转换为java对象
@SuppressWarnings(“static-access”)
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对象  
}  

3.java对象转换成json
package com.test07.json;

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 com.test07.json;
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);    
    }  

}

4.利用在线工具:
在线JSON字符串转Java实体类
http://www.bejson.com/json2javapojo/new/
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值