Json学习笔记(一)-利用Fastjson将String转换成Map,List和数组
2017-07-20 15:00
633 查看
一,Fastjson介绍说明
Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。
1、遵循http://json.org标准,为其官方网站收录的参考实现之一。
2、支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。
5、具有超高的性能,java世界里没有其他的json库能够和fastjson可相比了
二,下载和安装
在使用FastJson API工作之前,你需要下载库(jar文件),并将其包含到类路径中。库,连同源代码和Java文档,都可以从http://mvnrepository.com/artifact/com.alibaba/fastjson下载。下载完毕后,添加FastJson -<version>.jar到类路径。对于那些偏好使用Maven管理依赖(JAR文件)的读者,添加如下依赖到pom.xml
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.2</version>
</dependency>
mvn加载本地jar包命令
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.2.2 -Dfile=fastjson1.2.2.rar -Dpackaging=jar -DgeneratePom=true
三,提供的接口方法
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。public static final Object
parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); //
把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); //
把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); //
把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); //
将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); //
将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
四,Fastjson使用示例
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.Map;
/**
* Created by hhq on 2017/7/20.
*/
public class FastJsonTest {
public static void main(String[] args){
String str = "{\"name\":\"zhangsan\",\"sex\":\"1\",\"idcard\":\"44151199109095712\"}";
//第一种方式
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 = "{{\"name\":\"zhangsan\",\"sex\":\"1\",\"idcard\":\"44151199109095712\"}," +
"{\"name\":\"lisi\",\"sex\":\"2\",\"idcard\":\"44151199209095712\"}}";
// JSONArray.parse()
System.out.println(json);
String strList = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]";
//数组对象反序列化成集合
List listPerson = JSON.parseArray(strList);
for(Object item : listPerson){
System.out.println(item);
}
//没有对象直接解析JSON对象
JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}");
System.out.printf("name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age"));
//没有对象直接解析JSON数组
JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]");
for(int i=0,len=jarr.size();i<len;i++){
JSONObject temp= jarr.getJSONObject(i);
System.out.printf("name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age"));
}
}
}
相关文章推荐
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- java 后台使用gson 将json字符串转换为List<Map<String,object>> 数组
- [javase][json]fastJson在java后台转换json格式数据探究--处理数组/List/Map
- Java 利用Gson将json字符串转换为List<Map<String, String>>
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- 将JSON格式数据转换成适用于SimpleAdapter的数据形式 List<Map<String, String>>
- 【第15篇】通过FastJson把字符串转换成JSON和Map和List对象处理json数据
- com.alibaba.fastjson把JSONObject转换为Map<String, String>对象
- 利用Jackson对Object,Map,List,数组,枚举,日期类等转化为json
- 【学习笔记】Hibernate映射List、Map、数组、Set、Bag的具体操作
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- 类型转换——如何将一个List<Map<String,String>>类型换成json格式
- 将一个JSON数组String转换为一个对象list
- 7 Lucene笔记(七):第三方工具,将javabean、list、Map<String,object>转成json文本
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- 如何将一个List<Map<String,String>>类型的集合数据转换成json格式输出
- alibaba fastjson List<Map<String, String>>2Str