使用fastjson进行转换

bronk      2022-02-10     666

关键词:

package junit.test;  
  
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;  
/* 
 * 这里将json的转化和解析都放在一起了,大家可以根据实际需要来转化json字符串和解析json字符串 
 */  
public class TestFastJson {  
      
    static 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;  
        }  
        @Override  
        public String toString() {  
            return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";  
        }  
          
          
    }  
    public static void main(String[] args) {  
        method1();  
        method2();  
        method3();  
        method4();  
    }  
      
    static void method1(){  
        System.out.println("javabean转化示例开始----------");  
        Person person = new Person("1","fastjson",1);  
          
        //这里将javabean转化成json字符串  
        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("javabean转化示例结束----------");  
    }  
      
    static void method2(){  
        System.out.println("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字符串:"+jsonString);  
          
        //解析json字符串  
        List<Person> persons2 = JSON.parseArray(jsonString,Person.class);  
        //输出解析后的person对象,也可以通过调试模式查看persons2的结构  
        System.out.println("person1对象:"+persons2.get(0).toString());  
        System.out.println("person2对象:"+persons2.get(1).toString());  
          
        System.out.println("List<javabean>转化示例结束----------");  
    }  
      
    static void method3(){  
        System.out.println("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);  
          
        //解析json字符串  
        List<String> list2 = JSON.parseObject(jsonString,new TypeReference<List<String>>(){});   
        System.out.println(list2.get(0)+"::"+list2.get(1)+"::"+list2.get(2));  
        System.out.println("List<String>转化示例结束----------");  
  
    }  
      
    static void method4(){  
        System.out.println(" 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("map的key1值"+list2.get(0).get("key1"));  
        System.out.println("map的key2值"+list2.get(0).get("key2"));  
        System.out.println("ma2p的key1值"+list2.get(1).get("key1"));  
        System.out.println("map2的key2值"+list2.get(1).get("key2"));  
    }  
      
}  

 

使用fastjson进行驼峰下划线相互转换写法及误区(代码片段)

PropertyNamingStrategy有四种序列化方式。CamelCase策略,Java对象属性:personId,序列化后属性:persionId–实际只改了首字母大写变小写PascalCase策略,Java对象属性:personId,序列化后属性:PersonId–实际只... 查看详情

gson和fastjson

...,不需要例外额外的jar,能够直接跑在JDK上。阿里巴巴的FastJson:无依赖,不需要例外额外的jar,能够直接跑在JDK上。FastJson在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用。... 查看详情

fastjson中对象转换中看到的一些现象(代码片段)

...一看代码如下:JSON.parseObject(value,List.class)这里使用了fastjson,但是这里一看就看的出来,使用的不是很流畅。先讲讲fastjson什么是fastjsonfastjson是阿里开源的一个json操作库。从名字就可以看出来。它支持json和java对象类... 查看详情

fastjson中对象转换中看到的一些现象(代码片段)

...一看代码如下:JSON.parseObject(value,List.class)这里使用了fastjson,但是这里一看就看的出来,使用的不是很流畅。先讲讲fastjson什么是fastjsonfastjson是阿里开源的一个json操作库。从名字就可以看出来。它支持json和java对象类... 查看详情

java中使用fastjson进行对象的序列化和反序列化

Java中使用FastJSON进行对象的序列化和反序列化1.添加依赖,maven的pom.xml文件中添加以下依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version>& 查看详情

fastjson的使用

fastJson对于json格式字符串的解析主要用到了一下三个类:JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。JSONObject:fastJson提供的json对象。JSONArray:fastJson提供json数组对象。我们可以把JSONObject当成一个Map... 查看详情

gson、fastjson、jackson、json-lib对比总结

...较:在项目选型的时候可以使用Google的Gson和阿里巴巴的FastJson两种并行使用,如果只是功能要求,没有性能要求,可以使用google的Gson,如果有性能上面的要求可以使用Gson将bean转换json确保数据的正确,使用FastJson将Json转换Bean2.1... 查看详情

fastjson泛型如何转换

 引子  现在负责的业务和json打交道比较多,最近使用fastJson框架json串转成泛型对象遇到了一个异常:java.lang.ClassCastException 还原下场景: 模型Result<T>publicclassResult<T>{privateStringmsg;privateList<T>module;publ 查看详情

fastjson中@jsonfield注解使用(代码片段)

最近做项目中,使用了json格式在服务器之间进行数据传输。但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式。思路:  ... 查看详情

fastjson转换对象,属性首字母大小写的问题

...4","LoginType":"1","Mac":"02:00:00:62:73:74"等等。转换成Json的时候FastJson的源码会做一段操作,fastjson内部做Bean转换时会使用到com.alibaba.fastjson. 查看详情

gson和fastjson将json对象转换成javabean简单对照

...成javaBean.以前没使用过Gson,随即,简单入了个们,想起fastjson也有将json字符串转换成javaBean的API,随即简单比较了下源码.fastjson中的API如下:/***@since1.2.9*/public<T>TtoJavaObject(Cla 查看详情

fastjson解析错误问题查找

使用fastjson解析有时会碰到如下错误:com.alibaba.fastjson.JSONException:syntaxerror,expect,actualposxxx,...错误日志也是模棱两可,不写出具体的问题,这个时候可以使用Gson来转换:newGson().fromJson(json,mType);Gson转换如果出现问题会有... 查看详情

fastjson顺序遍历json字段

fastJson在把json格式的字符串转换成JSONObject的时候,使用的是HashMap,所以排序规则是根据HASH值排序的,如果想要按照字符串顺序遍历JSON属性,需要在转换的时候指定使用LinkedHashMap代替HashMap。publicstaticvoidmain(String[]args){StringjsonStr="... 查看详情

java-fastjson怎样使用自定义dateformatdeserializer

参考技术A反序列化问题如何使用fastjson成功反序列如下json串?“id”:1,”status”:200显然,如果直接用Json.parseObject()方法进行反序列化,会报如下错误信息:Exceptioninthread“main”com.alibaba.fastjson.JSONException:parseenumcom.netwaymedia.exhibiti... 查看详情

通过fastjson将long类型转换成string类型

...字段转换成String类型的,风险比较大。  方法二:使用fastjson的提供的注解,@JSONField(ser 查看详情

为什么不应该再使用fastjson

背景目前在国内环境中,应该是使用FastJson比较多,从国内的搜索到的文章教程中,大部分都是用的FastJson,由此可见在国内的普及度还是较高的。我一开始也是完全使用FastJson作为自己的主力库,主要有以下几点原因:国人开发... 查看详情

fastjson的常用操作

FastJson的常用操作2017-06-05常用操作包括以下内容:对象与(JsonObject或JsonArray)与String的互换String转换为(JsonObject或JsonArray)如何保持顺序Eval的使用值为null的(JsonObject或JsonArray)转换为String时如何保存代码:packageDemo.Sample1;impor... 查看详情

javaxml和json互相转换方法(代码片段)

目录1javaxml转为json的方法1.1fastjson和jdom2进行转化1.2用的org.json包2javajson格式转xml格式2.1使用jdom进行转换2.2使用dom4j进行转换1javaxml转为json的方法1.1fastjson和jdom2进行转化<?xmlversion="1.0"encoding="utf-8"?><auibinsura... 查看详情