您的位置:首页 > Web前端 > JavaScript

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"));


}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json
相关文章推荐