JSON字符串转换为Map

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

本文是利用阿里巴巴封装的FastJSON来转换json字符串的。例子如下:

package?com.zkn.newlearn.json;??
??
import?com.alibaba.fastjson.JSON;??
import?com.alibaba.fastjson.JSONObject;??
import?java.util.Map;??
??
/**?
?*?JSON字符串自动转换?
?*?Created?by?zkn?on?2016/8/22.?
?*/??
public?class?JsonToMapTest01?{??
??
????public?static?void?main(String[]?args){??
??
????????String?str?=?"{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"}";??
????????//第一种方式??
????????Map?maps?=?(Map)JSON.parse(str);??
????????System.out.println("这个是用JSON类来解析JSON字符串!!!");??
????????for?(Object?map?:?maps.entrySet()){??
????????????System.out.println(((Map.Entry)map).getKey()+"?????"?+?((Map.Entry)map).getValue());??
????????}??
????????//第二种方式??
????????Map?mapTypes?=?JSON.parseObject(str);??
????????System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");??
????????for?(Object?obj?:?mapTypes.keySet()){??
????????????System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));??
????????}??
????????//第三种方式??
????????Map?mapType?=?JSON.parseObject(str,Map.class);??
????????System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");??
????????for?(Object?obj?:?mapType.keySet()){??
????????????System.out.println("key为:"+obj+"值为:"+mapType.get(obj));??
????????}??
????????//第四种方式??
????????/**?
?????????*?JSONObject是Map接口的一个实现类?
?????????*/??
????????Map?json?=?(Map)?JSONObject.parse(str);??
????????System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");??
????????for?(Object?map?:?json.entrySet()){??
????????????System.out.println(((Map.Entry)map).getKey()+"??"+((Map.Entry)map).getValue());??
????????}??
????????//第五种方式??
????????/**?
?????????*?JSONObject是Map接口的一个实现类?
?????????*/??
????????JSONObject?jsonObject?=?JSONObject.parseObject(str);??
????????System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");??
????????for?(Object?map?:?json.entrySet()){??
????????????System.out.println(((Map.Entry)map).getKey()+"??"+((Map.Entry)map).getValue());??
????????}??
????????//第六种方式??
????????/**?
?????????*?JSONObject是Map接口的一个实现类?
?????????*/??
????????Map?mapObj?=?JSONObject.parseObject(str,Map.class);??
????????System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");??
????????for?(Object?map:?json.entrySet()){??
????????????System.out.println(((Map.Entry)map).getKey()+"??"+((Map.Entry)map).getValue());??
????????}??
????????String?strArr?=?"{{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"},"?+??
????????????????"{"00":"zhangsan","11":"lisi","22":"wangwu","33":"maliu"}}";??
???????//?JSONArray.parse()??
????????System.out.println(json);??
????}??
} ?

parse 和 parseObject 区别 :(这是原作者回答的别人的提问)

JSON.parse() 返回的结果是 Object 对象,JSON.parseObject() 的返回结果可以是 JSONObject (一个Map的实现类) ,也可以是指定的类型(可以用来处理泛型).。

JSONObject 继承了JSON,JSONObject 中没有定义 parset 的方法,它是通过调用父类(JSON)中的parse方法进行解析的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值