JSON的解析 --之 FastJson 的使用
来源:互联网 发布:娱乐网源码 编辑:程序博客网 时间:2024/05/18 13:44
FastJSOn是阿里巴巴开源的JSON处理工具,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。无依赖,能够直接运行在Java SE 5.0以上版本支持Android。开源 (Apache 2.0)
导入依赖:
<!--https://mvnrepository.com/artifact/com.alibaba/fastjson --><!-- 解析josn使用 ali-出--><dependency><groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.26</version></dependency>
package com.dcc.core.serxe.util;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;/* * 利用 fastjson 进行转换和解析数据 */public class TestFastJson {public static void main(String[] args) {//method1();method2();//method3();//method4(); //method5(); //method6(); // method7();}static void method1(){System.out.println("将json字符串转化成JavaBean对象");Person person = new Person("1","fastjson",1);//将javaBean 对象String jsonString = JSON.toJSONString(person);System.out.println(jsonString);//将json字符串转化成JavaBean对象person =JSON.parseObject(jsonString,Person.class);System.out.println(person.toString());System.out.println("将json字符串转化成JavaBean对象");}static void method2(){System.out.println("将json字符串转化成List<JavaBean>对象");Person person1 = new Person("1","fastjson1",1);Person person2 = new Person("2","fastjson2",2);List<Person> persons = new ArrayList<Person>();persons.add(person1);persons.add(person2);String jsonString = JSON.toJSONString(persons);System.out.println("将json字符串转化成List<JavaBean>对象"+jsonString);//进行json解析List<Person> persons2 = JSON.parseArray(jsonString,Person.class);System.out.println("person1解析后的值:"+persons2.get(0).toString());System.out.println("person2解析后的值:"+persons2.get(1).toString());System.out.println("将json字符串转化成List<JavaBean>对象完成");}static void method3(){System.out.println("将json字符串转化成List<String>对象");List<String> list = new ArrayList<String>();list.add("fastjson1");list.add("fastjson2");list.add("fastjson3");String jsonString = JSON.toJSONString(list);System.out.println("json转换后:"+jsonString);//解析jsonList<String> list2 = JSON.parseObject(jsonString,new TypeReference<List<String>>(){}); System.out.println(list2.get(0)+"::"+list2.get(1)+"::"+list2.get(2));System.out.println("将json字符串转化成List<String>对象成功");}static void method4(){System.out.println("将json字符串转化成List<Map<String,Object>>对象");Map<String,Object> map = new HashMap<String,Object>();map.put("key1", "value1");map.put("key2", "value2");Map<String,Object> map2 = new HashMap<String,Object>();map2.put("key1", 1);map2.put("key2", 2);List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();list.add(map);list.add(map2);String jsonString = JSON.toJSONString(list);System.out.println("json转化后:"+jsonString);//解析json数据List<Map<String,Object>> list2 = JSON.parseObject(jsonString,new TypeReference<List<Map<String,Object>>>(){});System.out.println("List<Map>解析后: "+list2);System.out.println("map的key1值:ֵ"+list2.get(0).get("key1"));System.out.println("map的key2值:"+list2.get(0).get("key2"));System.out.println("map2的key1值:ֵ"+list2.get(1).get("key1"));System.out.println("map2的key2值:ֵ"+list2.get(1).get("key2"));}static void method5(){ System.out.println("将json字符串转化成map(string,List<JavaBean>)对象"); Person person1 = new Person("1","fastjson1",1); Person person2 = new Person("2","fastjson2",2); List<Person> persons = new ArrayList<Person>(); persons.add(person1); persons.add(person2); String jsonString = JSON.toJSONString(persons); System.out.println("map(string,List<JavaBean>):"+jsonString); Map<String,String> map = new HashMap<String, String>(); map.put("key1", jsonString); String json = JSON.toJSONString(map,true); System.out.println(json); for (String key : map.keySet()) { //System.out.println(key+":"+map.get(key)); //进行json解析 List<Person> persons2 = JSON.parseArray(map.get(key),Person.class); System.out.println("person1解析后的值:"+persons2.get(0).toString()); System.out.println("person2解析后的值:"+persons2.get(1).toString()); } }static void method6(){ Map<String,String> map = new HashMap<String, String>(); map.put("a",new String("hhh")); map.put("b",new String("aaa")); map.put("c",new String("ggg")); String json = JSON.toJSONString(map,true); System.out.println(json); //JSON -> Map Map<String,String> map1 = (Map<String,String>)JSON.parse(json); for (String key : map1.keySet()) { System.out.println(key+":"+map1.get(key)); } }static void method7(){ System.out.println("将json字符串转化成Map<string,List<Map<string, string>>对象"); Map<String,String> map = new HashMap<String, String>(); map.put("key1", "aaa"); map.put("key2", "bbb"); map.put("key3", "ccc"); /*Person person1 = new Person("1","fastjson1",1); Person person2 = new Person("2","fastjson2",2);*/ //String json = JSON.toJSONString(map,true); Map<String,String> mapk = new HashMap<String, String>(); mapk.put("key1", "a1a"); mapk.put("key2", "b2b"); mapk.put("key3", "c3c"); /*Person person1 = new Person("1","fastjson1",1); Person person2 = new Person("2","fastjson2",2);*/ //String json1 = JSON.toJSONString(mapk,true); List<Map<String, String>> persons = new ArrayList<Map<String, String>>(); persons.add(map); persons.add(mapk); String jsonString = JSON.toJSONString(persons); System.out.println("List<Map>:"+jsonString); Map<String,String> map1 = new HashMap<String, String>(); map1.put("table1",jsonString); map1.put("table2", jsonString); String jsonString1 = JSON.toJSONString(map1); System.out.println("map<List<Map>>:"+jsonString1); Map<String,String> map2 = (Map<String,String>)JSON.parse(jsonString1); for (String key : map2.keySet()) { //System.out.println(key+":"+map.get(key)); //进行json解析 String listparse = map2.get(key); System.out.println("List<Map>:"+listparse); List<Map<String, Object>> list2 = JSON.parseObject(listparse,new TypeReference<List<Map<String,Object>>>(){}); System.out.println("List<Map>转换后:"+list2); for(int i = 0; i < list2.size(); i++){ //System.out.println("map的key1值:ֵ"+list2.get(i).get("key1")); for(String key1:list2.get(i).keySet()){ System.out.println(key1+":"+list2.get(i).get(key1)); } } } }}
package com.dcc.core.serxe.util;public class Person {private String id ;private String name;private int age ;public Person(){}public Person(String id,String name,int age){this.id=id;this.name=name;this.age=age;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() { return "解析json字符串后获取的person对象:id的值是" + id + ", name的值是" + name + ", age的值是" + age + "";}}
方法总结:方法有重复 传递的参数不一样 * 方法:JSON.toJOSNString(javaBean) 把对象转为josn串 * JSON.parseObject(json,java.class) 把json串转为指定java集合 * * JSON.toJSONString(list<javaBean>) 把集合对象转json串 * JOSN.parseArray(json,java.class) 把json串转为指定java对象集合 * * JSON.toJSONString(list<String>) 把集合对象转json串 * JOSN.parseArray(json,list<String>) 把json串转为指定list<String>集合 * //JSON.parseObject(jsonString,new TypeReference<List<String>>(){}) * * JSON.toJSONString(list<Map<String,Object>) 把集合对象转json串 * JOSN.parseArray(json,list<Map<String,Object>) 把json串转为指定list<String>集合 * //JSON.parseObject(jsonString,new TypeReference<List<Map<String,Object>>>(){}) * * JSON.toJSONString(map,true) 将map(string,List<JavaBean>)对象转化成json字符串 * JSON.parseArray(map.get(key),Person.class) 把json串转为指定List<JavaBean>)集合 * * JSON.toJSONString(map,true); 将map转化为json * (Map<String,String>)JSON.parse(json); 将 json转化为map *
转载自:http://blog.csdn.net/wangming520liwei/article/details/53432857 感谢分享!
阅读全文
0 0
- JSON的解析 --之 FastJson 的使用
- SpringBoot 之 第三方Json解析框架FastJson的使用
- Json解析包 阿里巴巴 FastJson 的使用
- Java的Json解析包FastJson使用
- JSON 之 FastJson 的简单使用
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- Json解析之FastJson
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- 解析json 之fastjson
- html5 的手机触摸事件
- 自定义View添加点击事件
- C++ IO流一些细节
- Shell编程基础
- [软件开发] 基于Qt开发的一款免费取色器软件
- JSON的解析 --之 FastJson 的使用
- linux环境切换文件的用户权限
- HDOJ 2113 Secret Number(水题)
- Go开发HTTP
- Wireless Network POJ
- 5.5-5.6
- 一个字句切割(strtok_s)
- js判断是手机端还是电脑端
- 【android】7、五大存储之SharedPreferences