JSON与JAVA数据的转换。JSONObject.fromObject()和JSONObject.toBean()

六个架包(666)

首先我们系统中要用到JSON解析,所以要引入这六个架包。饱饱

不引入这六个架包的话,使用JSONObject.fromObject  和 SONObject.toBean会报错,而且有的时候编译器不会告诉你是架包缺少的错误哦!

JSON 对象  与  JAVA对象的转换

  1. JSONObject   json = JSONObject.fromObject(String);//java转json

  2. JSONObject.toBean()//json转java

(1)java对象转json对象。

                ——HashMap转为JSON对象:JSONObject.fromObject()

          json对象又再次转换成java对象

                 ——JSON转为Map<String,String>:JSON强制转换

栗子1

public class JSONTest
{
	public static void main(String[] args)
	{
		HashMap<String,String> map=new HashMap<String,String>();
		map.put("A", "B");//map={A=B}
		JSONObject json = JSONObject.fromObject(map);//json={"A":"B"}
		System.out.println(json.toString());//{"A":"B"}

        //再将json强转成map
		Map<String,String> map2=(Map<String,String>)json;//{"A":"B"}
		System.out.println(map2.toString());
	}
}

忽然发现两件事:

一件事:HashMap中key值相同的话,前一个会被后一个覆盖。(原谅我太渣,现在才知道)

第二件事:相比于有道笔记,饱饱更爱写CSDN啊!

public class JSONTest
{
	public static void main(String[] args)
	{
		HashMap<String,String> map=new HashMap<String,String>();
		map.put("A", "B");//map={A=B}
		map.put("A", "C");//map={A=C}
		JSONObject json = JSONObject.fromObject(map);//json={"A":"C"}
		System.out.println(json.toString());//{"A":"C"}

        //再将json强转成map
		Map<String,String> map2=(Map<String,String>)json;//{"A":"C"}
		System.out.println(map2.toString());
	}
}

栗子2

public class JSONTest
{
	public static void main(String[] args)
	{
		HashMap<String,String> map=new HashMap<String,String>();
		map.put("A", "B");//map={A=B}
		map.put("C", "D");//map={A=B, C=D}
		JSONObject json = JSONObject.fromObject(map);//json={"A":"B","C":"D"}
		System.out.println(json.toString());

        //再将json强转成map
		Map<String,String> map2=(Map<String,String>)json;//{"A":"B","C":"D"}
		System.out.println(map2.toString());
	}
}

(2)java对象转json对象。

                ——String转为JSON对象:JSONObject.fromObject()

          json对象又再次转换成java对象

                 ——JSON转为Map<String,Object>:JSON强制转换

mapString =
{
	"errmsg":"ok",
	"ErrorCode":0,
	"messageId":"f5d4566c4c833152b3feb42a8092ee6c",
	"invaliduser":"",
	"forbiddenUserId":"",
	"resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}
}
public class JSONTest
{
	public static void main(String[] args)
	{
		//将string类型的map数据转换为json的数据格式,在将json的数据格式的转换成java的    Map<String,Object>的数据类型
		String mapString = "{\"errmsg\":\"ok\",\"ErrorCode\":0,\"messageId\":\"f5d4566c4c833152b3feb42a8092ee6c\",\"invaliduser\":\"\",\"forbiddenUserId\":\"\",\"resJson\":{\"errmsg\":\"ok\",\"ErrorCode\":0,\"messageId\":\"f5d4566c4c833152b3feb42a8092ee6c\",\"invaliduser\":\"\",\"forbiddenUserId\":\"\"}}";
		//mapString={"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}
		JSONObject json = JSONObject.fromObject(mapString);
		//json	   ={"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}
		Map<String, Object> map = (Map<String, Object>)json;
		//map      ={"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}
		System.out.println("-----map:---"+map.toString());
	}
}

(3)java对象转json对象。

                 ——String转为JSON对象:JSONObject.fromObject()

          json对象又再次转换成java对象

                  ——JSON转为Student对象:JSONObject.toBean()

public class JSONTest
{
	public static void main(String[] args)
	{
		String mapString = "{id:'211415034',name:'徐妍',age:'24'}";
		Student student = new Student();
		JSONObject json = JSONObject.fromObject(mapString);//json={"id":"211415034","name":"徐妍","age":"24"}
		student = (Student)JSONObject.toBean(json, Student.class);//曾经的学号:211415034    姓名:徐妍    年龄:24
		//JSONObject.toBean() 方法意为:从JSONObject 对象转换为 JAVA 对象。
		System.out.println(student);
	}
}
public class Student
{
	private int id;
	private String name;
	private int age;
	public int getId()
	{
		return id;
	}
	public void setId(int id)
	{
		this.id = id;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public int getAge()
	{
		return age;
	}
	public void setAge(int age)
	{
		this.age = age;
	}	
	public String toString()
	{
		return "曾经的学号:"+this.id+"    姓名:"+this.name+"    年龄:"+this.age;
	}
}

 

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值