fastjson

JS

偶尔善良 提交于 2020-01-22 23:00:13
Json 详解 Json 是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。在使用 Java 做 Web 开发时,不可避免的会遇到 Json 的使用。 一: JSON 形式与语法 1.1 : JSON 对象 我们先来看以下数据: { “ID”: “1001”, “name”: “张三”, “age”: “24” } 第一个数据就是一个 Json 对象,观察它的数据形式,可以得出以下语法: 1 :数据在花括号中 2 :数据以键:值对的形式出现(其中键多以字符串形式出现,值可取字符串,数值,甚至其他 json 对象) 3 :每两个键:值对以逗号分隔(最后一个键:值对省略逗号) 遵守上面 3 点,便可以形成一个 json 对象。 1.2 : JSON 对象数组 接下来我们再看第二个数据,观察它的数据形式,可以得出以下语法: [ {"ID": 1001, "name": " 张三 ", "age": 24}, {"ID": 1002, "name": " 李四 ", "age": 25}, {"ID": 1003, "name": " 王五 ", "age": 22} ] 1 :数据在方括号中(可理解为数组) 2 :方括号中每个数据以 json 对象形式出现 3 :每两个数据以逗号分隔(最后一个无需逗号)

No converter found for return value of type: class java.util.HashMap

試著忘記壹切 提交于 2020-01-22 13:25:44
原因是有以下 第一点 缺少依赖 我用的是fastjson <!--json--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency> 第二点 没有在spring配置文件中对fastjson的转化器进行配置 --> <mvc:annotation-driven> <mvc:message-converters> <!-- 如果使用FastJSON,需要将fastjson中的转换器加入到配置文件中 --> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <!-- 解决乱码问题 --> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> 来源: CSDN 作者: LjhBang 链接: https://blog

fastjson :com.alibaba.fastjson.JSONException: write javaBean error 解决方案

梦想的初衷 提交于 2020-01-21 08:21:12
转载自: https://feifei.im/archives/291 叙述 今天给一个java类加了几个字段,没想到转为json字符串的时候报错了,定位了一下原因,觉得这种情况遇到的应该不多,又想起来很久没写博客了,于是就把遇到的问题以及定位过程记下来,省了以后遇到的人再花时间定位了。 解决方案 调用的是JSON.toJSONString(Object object)方法,具体的报错信息如下: Caused by: com.alibaba.fastjson.JSONException: write javaBean error at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:234) at Serializer_5.write1(Unknown Source) at Serializer_5.write(Unknown Source) at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:369) at com.alibaba.fastjson.JSON.toJSONString(JSON.java:393) at com.alibaba.fastjson.JSON

Java几种常用JSON库性能比较

早过忘川 提交于 2020-01-20 08:54:46
本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。 JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心,除非是在性能要求比较高的系统。 目前对于Java开源的JSON类库有很多种,下面我们取4个常用的JSON库进行性能测试对比, 同时根据测试结果分析如果根据实际应用场景选择最合适的JSON库。 这4个JSON类库分别为:Gson,FastJson,Jackson,Json-lib。 简单介绍 选择一个合适的JSON库要从多个方面进行考虑: 字符串解析成JSON性能 字符串解析成JavaBean性能 JavaBean构造JSON性能 集合构造JSON性能 易用性 先简单介绍下四个类库的身份背景 Gson 项目地址:https://github.com/google/gson Gson是目前功能最全的Json解析神器,Gson当初是为因应Google公司内部需求而由Google自行研发而来,但自从在2008年五月公开发布第一版后已被许多公司或用户应用。 Gson的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar,能够直接跑在JDK上。

josn-lib,jackson,gson与fastjson的区别

こ雲淡風輕ζ 提交于 2020-01-19 19:05:59
一 、各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections.jar,commons-lang.jar,commons-logging.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出现另一个类的list或者map集合,json-lib从json到bean的转换就会出现问题。 json-lib在功能和性能上面都不能满足现在互联网化的需求。 2.开源的Jackson 相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。Jackson对于复杂类型的json转换bean会出现问题,一些集合Map,List的转换出现问题。Jackson对于复杂类型的bean转换Json,转换的json格式不是标准的Json格式。 3.Google的Gson Gson是目前功能最全的Json解析神器,Gson当初是应Google公司内部需求而由Google自行研发而来的,但自从在2008年五月公开发布第一版后已被许多公司或用户应用

json入门

强颜欢笑 提交于 2020-01-17 13:27:15
掌握json的语法的书写规则 掌握json和JavaScript的交互方式 掌握json和Java之间的序列化和反序列化 json的介绍 JavaScript object notation (JavaScript对象表示法) json是轻量级的文本数据交换格式 json独立于语言,具有自我描述性,更易于理解。 例子: { “sites”:[{“name”:”百度网”,”url”:”www.baidu.com”}, {“name”:”腾讯网”,”url”:”www.tengxun.com”} ] } json的语法规则: 数据由键(key)值(value)对进行描述的,逗号分隔 大括号代表一个完整的对象,拥有多个键值对 中括号保存数组,多个对象之间使用逗号分隔 案例:编写一个员工信息表的案例看下json的编写格式。 看代码 JavaScript访问json对象 json和字符串彼此之间如何进行转换。 json和字符串互相转换如下: JSON.parse();将字符串转换为json对象; JSON.stringify();将json对象转换为字符串; JSON是浏览器内置对象,JavaScript支持上面2种方法转换解析 Java和json进行交互 json后期是保存对象和传输对象的首选格式。 json的序列化和反序列化:Java中运用,需要json序列包

FastJson序列化时候出现了$ref?还不赶紧学习下

青春壹個敷衍的年華 提交于 2020-01-16 16:44:51
最近在使用fastjson时候遇到一个问题,后台的数据转化为json字符串后发送到前端时候出现了$ref字样的东西,后来明白了这是引用,下面详细介绍下。 一、一个简单的例子 先来上一段代码,运行后打印的结果可能出乎意料,代码如下: @org.junit.Test public void testFastJson() { Map<String, Object> dataMap = new HashMap<>(); List<User> userList1 = new ArrayList<>(); List<User> userList2 = new ArrayList<>(); for (int i = 0; i < 2; i++) { User user = new User(); user.setId(i); userList1.add(user); userList2.add(user); } dataMap.put("userList1", userList1); dataMap.put("userList2", userList2); System.out.println(JSON.toJSONString(dataMap)); } 上面代码运行后打印结果如下: {"userList1":[{"id":0},{"id":1}],"userList2":[{"$ref":"$

04-接口自动化之请求传参的模板化技术(JsonPath与Mustache)

我怕爱的太早我们不能终老 提交于 2020-01-15 01:18:52
1、需求背景 在实际的接口测试时,传参有时候可能需要很多,也可能我们就是想要一份完整的参数,必填项和非必填项都包含在内,好比如下的 json : { "store" : { "book" : [ { "category" : "reference" , "author" : "Nigel Rees" , "title" : "Sayings of the Century" , "price" : 8.95 } , { "category" : "fiction" , "author" : "Evelyn Waugh" , "title" : "Sword of Honour" , "price" : 12.99 } , { "category" : "fiction" , "author" : "Herman Melville" , "title" : "Moby Dick" , "isbn" : "0-553-21311-3" , "price" : 8.99 } , { "category" : "fiction" , "author" : "J. R. R. Tolkien" , "title" : "The Lord of the Rings" , "isbn" : "0-395-19395-8" , "price" : 22.99 } ] , "bicycle" : {

FastJson 之 JSONPath的使用

泄露秘密 提交于 2020-01-13 18:46:32
转载自: https://springboot.io/t/topic/309 叙述 jsonpath,类似于xpath。都是通过一种字符串表达式,来快捷检索json里面的数据。在非常复杂的json结构中,对于一些获取和判断操作,不需要层层的去get。可以通过简洁的JsonPath表达式获取到结果。 解析 JSONPath 构造方法 public JSONPath(String path) public JSONPath(String path, SerializeConfig serializeConfig, ParserConfig parserConfig) 静态属性/方法 public static Object eval(Object rootObject, String path) public static Object extract(String json, String path, ParserConfig config, int features, Feature... optionFeatures) public static Object extract(String json, String path) * 根据path检索值 * extract,按需计算, 性能会更好 public static int size(Object rootObject,

SpringBoot2.0系列教程(四)Springboot框架自定义消息转换器

我的梦境 提交于 2020-01-12 07:39:42
Hello大家好,本章我们添加自定义消息转换器。另求各路大神指点,感谢 一:消息转换器能干什么? 不知道大家有没有遇到过这种情况:后台接口返回一个实例,当你需要使用某个属性的值时,你还要判断一下值是否为 null ;接口返回一堆属性值为 null 的属性等 ok,消息转换器可以帮你解决这个问题 二:添加fastjson依赖 打开pom.xml,找到 <dependencies></dependencies> 标签,在标签中添加fastjson依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.22</version> </dependency> 然后鼠标右键选择Maven→Reimport进行依赖下载 三:创建配置文件 在文件夹configurer中创建WebConfigurer package com.example.demo.core.configurer; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson