fastjson

基于百度AI使用H5实现调用摄像头进行人脸注册、人脸搜索功能(Java)

纵饮孤独 提交于 2020-01-10 11:22:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 人脸注册、人脸搜索使用百度AI接口。不支持H5活体检测(需要活体检测请参考百度AI-H5活体检测) 体验地址(人脸注册) http://123.207.12.111:32095/storage 体验地址(人脸搜索) http://123.207.12.111:32095/ 只是为了演示。所以是IP。最好用火狐浏览器访问。谷歌提示异常作者就不专门修改了。大家可以直接下载源码运行体验的 前期准备工作 1. http://ai.ai/ 注册账户 实名认证 创建人脸应用 保存 APPID、APIKEY、SECRETKEY 三个值备用 2.需要必须的Java经验(最好是会用 SpringBoot 、 Maven ) 3. https://trackingjs.com/ 了解一下trackingjs(进行视频中的人脸检测。更多功能自行阅读文档) 4.项目源码地址: https://gitee.com/xshuai/faceRecognition 简易流程图 示例图(先看下效果) 用户名为空提示 百度AI人脸注册需要userid groupid 演示功能 直接写固定的值 userid是UUID生成的一个字符串。大家根据实际情况更改即可 图片不包含人脸 确保图片中包含人脸即可。未做活体检测。活体检测请参考百度AI官方文档的

Spring Boot配置FastJson报错'Content-Type' cannot contain wildcard type '*'

依然范特西╮ 提交于 2020-01-10 10:51:49
升级到最新版本的fastjson以后报的错,查了一下资料,发现 fastjson从1.1.41升级到1.2.28之后,请求报错: json java.lang.IllegalArgumentException: 'Content-Type' cannot contain wildcard type '*' 原因是在1.1.41中,FastJsonHttpMessageConverter初始化时,设置了MediaType。 public FastJsonHttpMessageConverter(){ super(new MediaType("application", "json", UTF8), new MediaType("application", "*+json", UTF8)); } 而在1.2.28中,设置的MediaType为‘/’,即: public FastJsonHttpMessageConverter() { super(MediaType.ALL); // */* } 后续在org.springframework.http.converter.AbstractHttpMessageConverter.write过程中,又要判断Content-Type不能含有通配符,这应该是一种保护机制,并强制用户自己配置MediaType。 解决方案如下:

fastjson将json文件向实体类转化时属性转化问题

一世执手 提交于 2020-01-10 08:31:10
依赖: < dependency > < groupId > com.alibaba </ groupId > < artifactId > fastjson </ artifactId > < version > 1.2.56 </ version > </ dependency > <!-- lombok --> < dependency > < groupId > org.projectlombok </ groupId > < artifactId > lombok </ artifactId > < version > 1.18.8 </ version > </ dependency > 实体类: @Data @NoArgsConstructor @AllArgsConstructor @ToString public class User implements Serializable { private static final long serialVersionUID = - 3209518898675994272 L ; private Integer id ; private String name ; private String addr ; private int sno ; private Double score ; private float

fastjson:JavaBeanSerializer.processValue 解决方案

北慕城南 提交于 2020-01-10 01:51:01
转载自: https://github.com/alibaba/fastjson/issues/2790 叙述 fastjson 1.2.62 版本 执行序列化和反序列化时报以下异常: java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.JavaBeanSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;Ljava/lang/Integer; at com.alibaba.fastjson.serializer.ASMSerializer_12_XXX.writeNormal(Unknown Source) ~[?:?] at com.alibaba.fastjson.serializer.ASMSerializer_12_XXX.write(Unknown Source) ~[?:?] at com.alibaba.fastjson.serializer.JSONSerializer

HttpMessageConverter的作用及替换

烂漫一生 提交于 2020-01-08 14:27:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 相信使用过Spring的开发人员都用过@RequestBody、@ResponseBody注解,可以直接将输入解析成Json、将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器和服务器通过交换原始文本进行通信,而这里其实就是HttpMessageConverter发挥着作用。 HttpMessageConverter Http请求响应报文其实都是字符串,当请求报文到java程序会被封装为一个ServletInputStream流,开发人员再读取报文,响应报文则通过ServletOutputStream流,来输出响应报文。 从流中只能读取到原始的字符串报文,同样输出流也是。那么在报文到达SpringMVC / SpringBoot和从SpringMVC / SpringBoot出去,都存在一个字符串到java对象的转化问题。这一过程,在SpringMVC / SpringBoot中,是通过HttpMessageConverter来解决的。HttpMessageConverter接口源码: public interface HttpMessageConverter<T> { boolean canRead(Class<?> clazz, MediaType mediaType); boolean

Fastjson、Jackson与SpringMVC整合的MessageConverter配置

无人久伴 提交于 2020-01-08 14:22:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.Jackson maven依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.7.1</version> </dependency> springmvc-servlet.xml中配置 <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> </mvc:message-converters> </mvc:annotation-driven> 2.FastJson

fastjson报NoSuchMethodError诡异

ⅰ亾dé卋堺 提交于 2020-01-07 03:42:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一个神奇的bug,2017年的一个工程A依赖fastjson1.2.7编译出了一个jar包,fastjson中有一个类SerializeConfig,这个类继承了一个put(Object k,Object v)的方法,所以编译出的jar包字节码里写的方法签名就是descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z。现在一个工程B使用工程A编译出的jar包,但是工程B里有fastjson的依赖1.2.60,在1.2.7之后(确切版本不知道),SerializeConfig这个类不再继承别人了,自己写了一个put(Type type, ObjectSerializer value),一个put(Object type, Object value),这时候有两个put方法。但是在fastjson1.2.60时,作者一不小心,删除了put(Object type,Object value)方法,导致运行时报NoSuchMethodError,注意时Error,不是Exception,在1.2.61,作者恢复了这个方法。 另外在研究这个错误的时候,发现有时候报NoClassDefFoundError,有时候报NoSuchMethodError,测试了一下

JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

不打扰是莪最后的温柔 提交于 2020-01-06 15:11:36
一、fastjson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。其主要特点是: ① 快速:fastjson采用独创的算法,将parse的速度提升到极致,超过所有基于Java的json库,包括曾经号称最快的jackson; ② 强大:Fastjson完全支持https://json.org的标准(也是Google官方网站收录的参考实现之一);支持各种JDK类型;包括基本类型、JavaBean、Collection、Map、Enum、泛型等; ③零依赖:没有依赖其它任何类库除了JDK,能够直接运行在Java SE 5.0以上版本;支持 Android ;开源 (Apache 2.0)。 为什么要说fastjson,因为,JSON.parseObject(String str)和JSONObject.parseObject(String str)就是fastjson中的方法。 二、parseObject(String str)的作用 JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。 三、JSON.parseObject(String str

JavaWeb中使用JSON

强颜欢笑 提交于 2020-01-05 06:27:12
前言: 最近也是期末了,有好多好多文档和实验报告要交,所以都没啥时间写文,这段时间清闲了,来补一下之前学习时遗漏的一些知识树,话说就没人吐槽这个JSON图标好丑吗? 什么是JSON JSON 指的是 JavaScript 对象表示法( J ava S cript O bject N otation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 这里有意思的是,JSON本来是用来表示 JavaScript 对象的一种数据文本格式,但由于它轻量级、易于解析/操作(JavaScript原生支持)的一些特点,渐渐的被很多语言支持也就成了一种标准 为什么使用JSON 在JSON之前,我们通常在网络传输中使用的格式是XML,在我们的印象之中,XML具有很好的可读性,并且格式统一,解析起来也相对比较简单,为什么摒弃掉XML而逐渐的使用起JSON呢? 主要原因在于: JSON比XML更小、更快、更易解析。 JavaScript原生支持JSON,解析速度相较XML会更快; XML解析成DOM对象的时候,浏览器之间会产生差异【例如IE和FireFox】;

fastjson的@JSONField注解

痞子三分冷 提交于 2020-01-02 00:23:18
@JSONField作用:在字段和方法上1.Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上2.作用在setter和getter方法上 /** * bean 转json 时会把bean中的name转换为project_name * */ @JSONField(name="project_name") public String getName() { return name; } /** * son 转bean 时会把json中的project_name值赋值给name * */ @JSONField(name="project_name") public void setName(String name) { name= name; }    3 .format :用在Date类型的字段来格式化时间格式    4 .布尔类型:serialize和deserialize    在序列化的时候就不包含这个字段了。deserialize与之相反。但是有一点需要注意,当字段为final的时候注解放在字段上是不起作用的,这时候应该放在get或set方法上。 @JSONField(serialize=false) private String name    5. serialzeFeatures 属性