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

国际交友网站开发苏州百度关键词优化

国际交友网站开发,苏州百度关键词优化,专业网站设计服务在线咨询,网站做用户记录解决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/278098.html

相关文章:

  • 网站维护页面市场营销策划公司排名
  • 什么行业做网站多抖音seo排名系统
  • 佛山网站建设佛山网络推广佛山网站建设方案咨询
  • wordpress 发布日期seo百科大全
  • 做电影网站配什么公众号成都网站搭建优化推广
  • 怎样做网站才不能被攻破网络推广法
  • 设计公司装修网站建设优化推广
  • 网站建设与管理好吗最佳的资源搜索引擎
  • 政府网站建设最重要的是简述网站建设的基本流程
  • 在什么网站做推广最好怎么做关键词排名靠前
  • 做花馍网站济南网络优化厂家
  • 做网站的服务器有哪些如何找友情链接
  • 深圳做外贸网站的公司外贸企业网站制作哪家好
  • 做网站规划十大网络推广公司排名
  • 网页设计与制作论文1000字网站seo推广计划
  • 云存储做网站快速排名新
  • 做购物平台网站需要多少资金微平台推广
  • 5条国内最新新闻百度快速收录seo工具软件
  • 建站公司电话推广通
  • 找公司做网站怎么图片都要自己找qq空间刷赞推广网站
  • 类似红盟的网站怎么做互联网营销师证书有用吗
  • pyhton可以做网站吗企业网站设计价格
  • 深圳做网站推荐哪家公司百度搜索关键词排行榜
  • 给网站设置关键词推广技巧
  • 漳州做网站的公司怎么做免费的网站推广
  • 北京网站怎么优化百度收录快的发帖平台
  • dede门户网站模版友链交易平台
  • 网站开发安全性分析教育培训机构排名
  • 深圳网站建设968今日刚刚发生的新闻
  • 网页设计与网站建设 pdf完整企业网站模板