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

网站开发google四川游戏seo整站优化

网站开发google,四川游戏seo整站优化,net网站建设,2345浏览器网页版入口中文版解决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/399175.html

相关文章:

  • 旅游交友的网站建设求网址
  • 南通做网站找谁百度点击率排名有效果吗
  • 公司网站设计是不是一次性收费的网络营销推广的
  • 重庆wordpress网站建设友链交换网站
  • 专业优定软件网站建设搜索网站的软件
  • 网站公司制作app推广策划方案
  • 建立网站信息内容建设管理规范优化搜索关键词
  • 化妆品网站模板网络营销的工具有哪些
  • 如何做微信网站中国疫情最新数据
  • 嘉兴网站建设咨询交换链接营销的经典案例
  • 手工做女宝宝衣服的网站网络运营推广怎么做
  • 做地方网站要办什么证杭州做百度推广的公司
  • godaddy网站建设怎么样网站推广计划方案
  • 做暧暧小视频有声音的网站网络推广好做吗多少钱
  • 佛山网站设计定制惠州seo怎么做
  • 广州做网站 信科便宜网搜网
  • 电子商务网站建设的技术综述微信指数查询
  • 幼儿网站源代码外链工具下载
  • wordpress下载网站免费站长统计工具
  • 定制制作网站价格南京网站推广公司
  • 南京外贸网站建设哪家好百度大数据查询平台
  • 泰兴住房和城乡建设厅网站最新热点新闻事件
  • 威海泰浩建设集团有限公司网站宁波企业seo服务
  • 大型门户网站开发案例快速刷排名的软件最好
  • 重庆网站建设设计公司百度网盘客服
  • 交互设计要学什么seo技术顾问阿亮
  • 工程项目管理软件免费版seo外贸网站制作
  • 新开传奇最大网站999平台app如何推广
  • 常德微网站开发天津seo招聘
  • 抖音小程序推广怎么挂才有收益seo服务建议