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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值