当前位置: 首页 > wzjs >正文

网站开发google手机怎么创建网站

网站开发google,手机怎么创建网站,全网营销平台,邹城网站制作解决fastJson JSON.parseArray方法 非法字符问题 1. 问题描述2. 解决办法3. 📌 各字符说明: 1. 问题描述 数据库中某个字段存储的数据是JSON类型,取出数据时需要JSON.parseArray 但是爆出如下错误 2025-04-17 16:20:55.650 [http-nio-0.0.0…

解决fastJson JSON.parseArray方法 非法字符问题

  • 1. 问题描述
  • 2. 解决办法
  • 3. 📌 各字符说明:

1. 问题描述

数据库中某个字段存储的数据是JSON类型,取出数据时需要JSON.parseArray 但是爆出如下错误

2025-04-17 16:20:55.650 [http-nio-0.0.0.0-8080-exec-1] ERROR c.a.i.k.g.c.a.t.CronUpdateTaskController - [result]图谱结果,失败,offset 3, character  , line 2, column 2, fastjson-version 2.0.52
[{"relationType": "搭档","num": 15},{"relationType": "好友","num": 12},{"relationType": "前女友","num": 2},{"relationType": "同学","num": 1},{"relationType": "女儿","num": 1},{"relationType": "妻子","num": 1}
]
2025-04-17 16:20:55.660 [http-nio-0.0.0.0-8080-exec-1] ERROR c.a.i.k.g.f.w.h.GlobalExceptionHandler - [defaultExceptionHandler]
com.alibaba.fastjson2.JSONException: offset 3, character  , line 2, column 2, fastjson-version 2.0.52
[{"relationType": "搭档","num": 15},{"relationType": "好友","num": 12},{"relationType": "前女友","num": 2},{"relationType": "同学","num": 1},{"relationType": "女儿","num": 1},{"relationType": "妻子","num": 1}
]at com.alibaba.fastjson2.reader.ObjectReaderImplObject.readObject(ObjectReaderImplObject.java:302)at com.alibaba.fastjson2.JSONReader.read(JSONReader.java:1860)at com.alibaba.fastjson2.JSON.parseArray(JSON.java:2473)at cn.ac.ict.knowledge.graph.service.task.UpdateTaskServiceImpl.buildRelation(UpdateTaskServiceImpl.java:919)at cn.ac.ict.knowledge.graph.service.task.UpdateTaskServiceImpl.result(UpdateTaskServiceImpl.java:902)at cn.ac.ict.knowledge.graph.controller.app.task.CronUpdateTaskController.result(CronUpdateTaskController.java:176)at cn.ac.ict.knowledge.graph.controller.app.task.CronUpdateTaskController$$FastClassBySpringCGLIB$$6687128f.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)at cn.ac.ict.knowledge.graph.controller.app.task.CronUpdateTaskController$$EnhancerBySpringCGLIB$$649ef656.result(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)

有用的信息

com.alibaba.fastjson2.JSONException: offset 3, character  , line 2, column 2, fastjson-version 2.0.52

看起来是字符非法的问题,因为JSON本身没问题。

2. 解决办法

经过了解很可能是这个 JSON 字符串中混入了 不可见的非法字符(比如全角空格、BOM头、Unicode空白符等),尤其是[ 后面那一行里的空格,是个 非 ASCII 空格(全角空格 U+3000 或 Unicode 空格),fastjson2 解析的时候直接报错。

我直接通过工具类来清洗数据

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.9</version>
</dependency>
import org.apache.commons.lang3.StringUtils;JSON.parseArray(StringUtils.trim(ABC.getTagInfo())
.replaceAll("[\\uFEFF\\u200B\\u00A0\\u3000\\u202F\\u2007]", ""));

问题完美解决!

3. 📌 各字符说明:

在这里插入图片描述

http://www.dtcms.com/wzjs/181308.html

相关文章:

  • 重庆所有做网站的公司有哪些免费发布外链
  • dw做的网站怎么在vs关键词调词平台费用
  • 东莞政府网站建设百度seo搜索排名
  • 做目录的网站爱站网长尾挖掘工具
  • 搜索企业的软件哪个好游戏优化
  • 网站底部的图标中文搜索引擎排行榜
  • 网站建立连接不安全怎么处理竞价 推广
  • 安卓app开发常州网站建设优化
  • seo关键词排名优化提升百度免费seo
  • 江苏建设工程集团深圳seo优化排名公司
  • 招聘网站建设人员要求网站seo优化课程
  • 郑州电商小程序定制青岛seo经理
  • 阿里云快速备份网站十大网络推广公司排名
  • 建设网站一般要多钱大学生网页设计主题
  • 做网站开发用什么软件长沙搜索排名优化公司
  • 做独立网站需要注意些什么手续外贸营销网站制作
  • 2017做哪些网站能致富十大软件培训机构
  • 网店起名大全免费取名windows优化大师怎么卸载
  • 网站改版方案流程关系营销案例
  • 摄影的网站设计特点微信app小程序开发
  • wordpress系统语言设置搜索引擎推广和优化方案
  • 有没有教做韩餐的网站搜索引擎优化的概念是什么
  • 网站建设 主要学是么搜狗seo查询
  • 网站建设的目的和意义seo在线工具
  • 北京网站建设 优化福州百度推广排名优化
  • 作业做哪些类型的网站windows优化大师有什么功能
  • 送菜上门网站app如何做推广吧
  • 行政审批网站建设规范自建网站平台有哪些
  • 湖南做网站的公司排名百度关键词排名突然下降很多
  • 库存网站建设公司推广哪个app最挣钱