Json字符串与对象之Convert

    所作此文,一来方便日后查询,二来纪念自己所做的第一个数据库管理项目(Real Time)。本文主要是介绍Json字符串和Json对象在项目中的转换,分为Gson版与fastjson版。

一.Gson版

    Example 1:

String threadJson = RtAPISessionUtil.getHttpDataByGet(url); //通过url,接口返回关于线程的Json字符串
Map<String, String> threadJsonObj = new HashMap<String, String>(); //Map实例
threadJsonObj = gson.fromJson(threadJson, threadJsonObj.getClass()); //Json字符串转换为Map中的对象
String threadCounts = String.valueOf(threadJsonObj.get("threadCounts")); //通过key取值

    Instructions:

       RtAPISessionUtil.getHttpDataByGet(url);  //调用http接口,处理url,服务器返回结果,平台写的接口。

       Gson gson = new Gson(); // gson 对象,此处Gson依赖引入不赘述,知道用其中的方法即可。

      gson.fromJson(threadJson, threadJsonObj.getClass()); // 调用fromJson()方法 进行解析 

      Map<key,value> 集合是通过key来取值的,转化之后便可以通过key来取到其对应的值。比如上面通过接口返回的Json字符串为:

{
   "threadCounts":5 // 这里服务器返回的是整形数据,代码中进行了强转为String.
   ...
 }

    转换为Map对象之后:

{
  threadCounts:5  //threadCounts 为key值
  ...  
 }

   

 二.fastjson版

  Example 1:JSONObject.parseObject() 转为对象

String data = RtAPISessionUtil.getHttpDataByGet(url); //data:处理返回据Json字符串
return JSONObject.parseObject(data,RtTimePointQuery.class); // 返回的是经过处理之后和JavaBean映射的
     Instructions:
        第一行不再说明,同上。
        JSONObject.parseObject(data,RtTimePointQuery.class); 
        1.JSONObject这个类其实继承了Json类,所有其实是和JSON.parseObject();是一样的
        2.fastjson依赖不再赘述,一般都是在pom.xml文件中引入。
        3.RtTimePointQuery :时间点查询的一个Bean ,构造了Json字符串与之对应的
        
        比如服务器返回的Json字符串:
{
   "err":1 // 不为0说明有错误信息
   "err_msg":"invalid input" //错误信息
   "time":"2018-01-01 21:51:30.786" //返回时间
 }
        构造Bean:
public class RtTimePointQuery {
	private String err;
	private String err_msg;
	private Date time;
	public String getErr() {
		return err;
	}
	public void setErr(String err) {
		this.err = err;
	}
	public String getErr_msg() {
		return err_msg;
	}
	public void setErr_msg(String err_msg) {
		this.err_msg = err_msg;
	}
	public Date getTime() {
		return time;
	}
	public void setTime(Date time) {
		this.time = time;
	}
	
}
        这样,便可以通过RtTimePointQuery的对象通过get方法来获取到数据。
        如:RtTimePointQuery rtTime = JSONObject.parseObject(data,RtTimePointQuery.class);
            Date time = rtTime.getTime(); 
            ... 

    Example 2JSONObject.toJSON(map).toString() 转为字符串
return JSONObject.toJSON(map).toString(); //将Map对象转为Json字符串 map对象中有很多数据

         Instructions:

            map是经过处理后的map对象,JSONObject.toJSON(map).toString();将其转为Json字符串,传到了前台。因为前台是通过ajax传值并进入controller中的。

 

    总结

     1. Json对象和Json字符串的转换,主要常用的两种方式Gson和fastjson

     2. fastjson中JSONObject.parseObject();将字符串解析为对象形式;

     3.JSONObject.toJSON(map).toString();将对象形式转换为Json字符串




    

   

    


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值