fastjson与map之间的转换

fastjson是阿里巴巴软件工程师创造的数据解析方式,比json快十倍大概,并且,现在的安卓都用这个,是个趋势!


我们都知道map集合是key-value:

比如:Map<String,Object> dataMap = new HashMap<String,Object>();
dataMap.put("tag", "data");
dataMap.put("hospitalName", "宜都市妇幼保健院");
dataMap.put("name", "欧阳夏凡");
dataMap.put("gender", "女");
dataMap.put("age", "28");
dataMap.put("code", "420502042");
dataMap.put("examineDoc", "杨林");
dataMap.put("examineDate", "2016-05-10");
dataMap.put("verifyDoc", "王菲");
System.out.println(dataMap);

打印:{examineDoc=杨林, verifyDoc=王菲, tag=data, examineDate=2016-05-10, age=28, name=欧阳夏凡, hospitalName=宜都市妇幼保健院, gender=女, code=420502042}

那么问题1来了,怎么将这个数据转换成:{“examineDoc”:“j杨林”,"verifyDoc":"王菲"....}

解决:1、其实很简单,首先导入fastjson的开发包:https://sourceforge.net/projects/fastjson/files/?source=navbar,进去网址直接下载“.jar”的文件即可。

    2、然后写一个工具类:package utils;


import java.util.Map;


import com.alibaba.fastjson.JSON;


public class JsonUtils {


@SuppressWarnings("unchecked")
public static Map<String,Object> json2Map(String json){
return JSON.parseObject(json, Map.class);
}

public static String obj2JsonString(Object obj){
return JSON.toJSONString(obj);
}

}

String str = JsonUtils.obj2JsonString(dataMap);
System.out.println(str);
  

打印结果:{"age":"28","code":"420502042","examineDate":"2016-05-10","examineDoc":"杨林","gender":"女","hospitalName":"宜都市妇幼保健院","name":"欧阳夏凡","tag":"data","verifyDoc":"王菲"}

你可以把这个数据变成json,就可以往里面添加数据;

或者变成jsonArray,看具体任务需求,和方便程度吧。


问题2:如果要把:String aa = "{\"name\":\"jack\",\"age\":\"20\"}";转成:{age=20, name=jack}怎么办呢?


String aa = "{\"name\":\"jack\",\"age\":\"20\"}";
Map<String,Object> bb = JsonUtils.json2Map(aa);
System.out.println(bb);
//{age=20, name=jack}

然后就可以进行其他的操作了,比如往map中put数据都行。


  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值