java fastjson class_Java处理Json(fastjson)

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

导入依赖

com.alibaba

fastjson

1.2.47

其中JSONArray : 相当于List

JSONObject: 相当于Map

JSON字符串转JSONObject

使用parseObject()方法

String str = "{\n" +

"\"merchantId\": 136188,\n" +

"\"merchantName\": \"03071商户\",\n" +

"\"merchantNo\": \"00080471\",\n" +

"\"merchantMark\": null,\n" +

"\"agentsName\": \"江苏\",\n" +

"\"agentsMark\": \"010D\",\n" +

"\"agentsId\": 51,\n" +

"\"agentsNo\": null,\n" +

"\"locationProvince\": null,\n" +

"\"locationCity\": null,\n" +

"\"locationRegion\": null,\n" +

"\"createTime\": \"2018-06-15 14:33:59\"\n" +

"}";

JSONObject object = JSONObject.parseObject(str);

获取数据

使用对应的get方法获取相应的数据

例如我要获取merchantId需要使用getString()方法

String merchantId = object.getString("merchantId");

System.out.println("merchantId "+merchantId);

这样就拿到了merchanId

插入数据

使用put()方法

object.put("jsonTest","放入一条数据");

System.out.println(object.getString("jsonTest"));

JSONObject对象转JSON字符串

使用JSONObject.toJSONString(JSONObject)

String jsonString = JSONObject.toJSONString(object);

System.out.println(jsonString);

JSONObject转JavaBean

给idea安装一个GsonFormat插件方便自动生成JavaBean的类

首先创建一个空Merchant类

右键找到Generate

点击GsonFormat复制一条Json数据进去

点ok之后可以对Data Type做适当调整,然后继续OK

对应的类就生成出来了

JSONObject转JavaBean对象需要使用

JSONObject.toJavaObject(JSON json, Classclazz);

String str = "{\n" +

"\"merchantId\": 136188,\n" +

"\"merchantName\": \"03071商户\",\n" +

"\"merchantNo\": \"00080471\",\n" +

"\"merchantMark\": null,\n" +

"\"agentsName\": \"江苏\",\n" +

"\"agentsMark\": \"010D\",\n" +

"\"agentsId\": 51,\n" +

"\"agentsNo\": null,\n" +

"\"locationProvince\": null,\n" +

"\"locationCity\": null,\n" +

"\"locationRegion\": null,\n" +

"\"createTime\": \"2018-06-15 14:33:59\"\n" +

"}";

JSONObject object = JSONObject.parseObject(str);

//第一个参数传入JSONObject对象也就是上面的object,第二个时候要转的JavaBean类,我们要转成Merchant

Merchant merchant = JSONObject.toJavaObject(object, Merchant.class);

System.out.println("merchantId "+merchant.getMerchantId());

用得到的merchant对象调用getMerchantId()方法看看是否成功将JSONObject对象转成Javabean对象

JavaBean对象转成JSONObject对象

首先要将JavaBean转成JSON字符串对象再将JSON字符串转成JSONObject对象

String str = "{\n" +

"\"merchantId\": 136188,\n" +

"\"merchantName\": \"03071商户\",\n" +

"\"merchantNo\": \"00080471\",\n" +

"\"merchantMark\": null,\n" +

"\"agentsName\": \"江苏\",\n" +

"\"agentsMark\": \"010D\",\n" +

"\"agentsId\": 51,\n" +

"\"agentsNo\": null,\n" +

"\"locationProvince\": null,\n" +

"\"locationCity\": null,\n" +

"\"locationRegion\": null,\n" +

"\"createTime\": \"2018-06-15 14:33:59\"\n" +

"}";

JSONObject object = JSONObject.parseObject(str);

Merchant merchant;

merchant = JSONObject.toJavaObject(object, Merchant.class);

//将merchant转成JSON字符串

String jsonString = JSONObject.toJSONString(merchant);

//再将jsonString转成JSONObject对象

JSONObject merchantObject = JSONObject.parseObject(jsonString);

System.out.println("createTime " + merchantObject.getString("createTime"));

用得到的merchantObject调用getString("createTime")看看是否成功将merchant对象转成了JSONObject对象

JSON字符串转Map

第一种 使用(Map)JSON.parse(str)

String str = "{\n" +

"\"merchantId\": 136188,\n" +

"\"merchantName\": \"03071商户\",\n" +

"\"merchantNo\": \"00080471\",\n" +

"\"merchantMark\": null,\n" +

"\"agentsName\": \"江苏\",\n" +

"\"agentsMark\": \"010D\",\n" +

"\"agentsId\": 51,\n" +

"\"agentsNo\": null,\n" +

"\"locationProvince\": null,\n" +

"\"locationCity\": null,\n" +

"\"locationRegion\": null,\n" +

"\"createTime\": \"2018-06-15 14:33:59\"\n" +

"}";

Map map = (Map) JSON.parse(str);

System.out.println(map.get("merchantId"));

第二种

用JSON类的parseObject()来解析JSON字符串

String str = "{\n" +

"\"merchantId\": 136188,\n" +

"\"merchantName\": \"03071商户\",\n" +

"\"merchantNo\": \"00080471\",\n" +

"\"merchantMark\": null,\n" +

"\"agentsName\": \"江苏\",\n" +

"\"agentsMark\": \"010D\",\n" +

"\"agentsId\": 51,\n" +

"\"agentsNo\": null,\n" +

"\"locationProvince\": null,\n" +

"\"locationCity\": null,\n" +

"\"locationRegion\": null,\n" +

"\"createTime\": \"2018-06-15 14:33:59\"\n" +

"}";

Map map= (Map) JSON.parse(str);

System.out.println(map.get("merchantId"));

第三种

用JSON类,指定解析类型,来解析JSON字符串

JSON.parseObject(str,Map.class)

String str = "{\n" +

"\"merchantId\": 136188,\n" +

"\"merchantName\": \"03071商户\",\n" +

"\"merchantNo\": \"00080471\",\n" +

"\"merchantMark\": null,\n" +

"\"agentsName\": \"江苏\",\n" +

"\"agentsMark\": \"010D\",\n" +

"\"agentsId\": 51,\n" +

"\"agentsNo\": null,\n" +

"\"locationProvince\": null,\n" +

"\"locationCity\": null,\n" +

"\"locationRegion\": null,\n" +

"\"createTime\": \"2018-06-15 14:33:59\"\n" +

"}";

Map map= JSON.parseObject(str,Map.class); ;

System.out.println(map.get("merchantId"));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值