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

解决Jackson解析JSON时出现的Illegal Character错误

在这里插入图片描述

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁
🦄 博客首页——猫头虎的博客🎐
🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐
🌊 《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~💐

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

文章目录

    • 问题原因
    • 解决方案
      • 1. 检查并清理JSON源文件
      • 2. 在代码中清理字符串
      • 3. 使用配置选项来忽略问题
    • 总结
  • 原创声明

# 解决Jackson解析JSON时出现的Illegal Character错误

大家好,我是猫头虎博主,今天我们来讨论一个在使用Jackson库进行JSON解析时常见的问题。该问题的异常信息通常如下:

com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 0)): only regular white space (\r, \n, \t) is allowed between tokensat [Source: C:\JoySpaceHomeWorkingDir\PrintOrder\2336040\order.json; line: 1, column: 2]

当你看到这样的错误信息,通常意味着尝试解析的JSON文本中包含了非法字符。下面,我们来了解如何解决这个问题。

问题原因

这个异常是由于JSON文本中存在非法字符而触发的。在这个特定的情况下,非法字符是一个控制字符(CTRL-CHAR, code 0)。控制字符是那些用于控制某些旧硬件设备的ASCII字符,如打印机、终端等。

解决方案

解决这个问题的方法有几个,这里是其中一些:

1. 检查并清理JSON源文件

打开问题中提到的JSON文件(在这个案例中,路径是C:\JoySpaceHomeWorkingDir\PrintOrder\2336040\order.json),检查是否存在任何不可见的控制字符,然后删除它们。

2. 在代码中清理字符串

在尝试解析JSON之前,你也可以在代码中进行字符串清理。例如,在Java中:

String cleanJson = json.replaceAll("[\\p{C}\\p{Cc}\\p{Cf}\\p{Co}\\p{Cn}]", "");

这将使用正则表达式去除所有控制字符。

3. 使用配置选项来忽略问题

你还可以通过设置Jackson的JsonParser.Feature来忽略此问题:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);

注意:这个选项会减少安全性,因为它允许解析器接受通常不应出现在JSON文本中的字符。

总结

控制字符在JSON文本中通常是不允许的。如果你遇到了这样的JsonParseException异常,最直接的解决方案是检查和清理源JSON文本。此外,还可以通过编程方式清理输入字符串或调整Jackson的设置来解决问题,但这些方法通常不是最推荐的做法。

希望这篇文章能帮助你解决问题!如果有其他问题或更好的解决方案,欢迎在评论区分享。谢谢!

原创声明

======= ·

  • 原创作者: 猫头虎

作者wx: [ libin9iOak ]

学习复习

本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

相关文章:

解决Jackson解析JSON时出现的Illegal Character错误

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

feign和openfeign的区别

1.OpenFeign介绍 是一个Web声明式的Http客户端远程远程调用工具,底层是封装HttpClient技术,提供接口和注解形式调用。 注意feign客户端调用的事项: a、如果请求参数没有加上注解的话,默认采用post请求发送。 b、服务的名称命名不能…...

Python飞机大战小游戏

游戏规则:键盘上下左右键控制飞机移动 游戏展示图片: 源码: 第一个py命名为:plane_main.py import pygamefrom plane_sprites import *class PlaneGame(object):# """飞机大战主游戏"""def __in…...

【python爬虫】7.爬到的数据存到哪里?

文章目录 前言存储数据的方式存储数据的基础知识基础知识:Excel写入与读取基础知识:csv写入与读取项目:存储周杰伦的歌曲信息 复习 前言 上一关我们以QQ音乐为例,主要学习了如何带参数地请求数据(get请求)…...

Docker 的快速使用

ubuntu安装 centos安装 安装完毕之后执行一下这条命令,可以避免每次使用docker命令都需要sudo权限 sudo usermod -aG docker $USER阿里云docker镜像加速 DockerHub 遇到不懂或者不会使用的命令可以使用docker --help查看文档 docker --help 如: dock…...

Docker consul容器服务自动发现和更新

目录 一、什么是服务注册与发现 二、Docker-consul集群 1.Docker-consul 2.registrator 3.Consul-template 三、Docker-consul实现过程 四、Docker-consul集群配置 1.下载consul服务 2.web服务器启动多例nginx容器,使用registrator自动发现 3.使用…...

MPI内置类型与自定义类型

内置类型 MPI_CHAR: 字符型 MPI_UNSIGNED_CHAR: 无符号字符型MPI_BYTE: 字节型MPI_SHORT: 短整型MPI_UNSIGNED_SHORT: 无符号短整型MPI_INT: 整型MPI_UNSIGNED: 无符号整型MPI_LONG: 长整型MPI_UNSIGNED_LONG: 无符号长整型MPI_FLOAT: 单精度浮点型MPI_DOUBLE: 双精度浮点型M…...

【ES新特性三】Object 原型、原型链相关方法

一、Object 原型、原型链相关方法 1.1 静态方法(Object 调用): Object.setPrototypeOf(obj,prototype) 方法用于设置某个实例对象的原型(可以是null,也可以是一个对象) Object.getPrototypeOf(obj) ​ …...

学习大数据应该掌握哪些基础语言

大数据技术的体系庞大且复杂,每年都会涌现出大量新的技术,目前大数据行业所涉及到的核心技术主要就是:数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 学习大数据需要掌握什么语言基础? 1、Java基础 大数据框架90%以…...

Kubernetes技术--k8s核心技术 ingress

1.引入 我们之前在部署应用(如nginx)的时候,如果你需要外部进行访问,使用的是service中的nodePort方式进行对外的暴露。然后外部就可以使用ip + 端口号来进行访问部署应用。 其实这一种方式是存在着较为明显的缺陷,每一个端口你只能够使用一次,一个端口对应一个应用,而且访…...

中级深入--day15

案例:使用BeautifuSoup4的爬虫 我们以腾讯社招页面来做演示:搜索 | 腾讯招聘 使用BeautifuSoup4解析器,将招聘网页上的职位名称、职位类别、招聘人数、工作地点、发布时间,以及每个职位详情的点击链接存储出来。 # bs4_tencent.p…...

内存四区(个人学习笔记黑马学习)

1、内存分区模型 C程序在执行时,将内存大方向划分为4个区域: 代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程…...

如何使用RPA + ChatGPT自动化提高自己的工作效率

使用RPA(Robotic Process Automation)和ChatGPT可以结合来自动化提高自己的工作效率。下面是一些步骤: (1)确定自动化任务 首先,需要确定哪些任务或工作流程可以通过自动化来提高效率。这些任务应该是重复…...

uni-app之android项目配置和打包

1,项目根目录,找到mainfest.json,如果appid是空的,需要生成一个appid 2,点击重新获取appid,这个时候需要登录,那就输入账号密码登录下 3,登陆后可以看到获取appid成功 4,…...

go语言配置

1、Go语言的环境变量 与Java等编程语言一样,安装Go语言开发环境需要设置全局的操作系统环境变量(除非是用包管理工具直接安装) 主要的系统级别的环境变量有两个: (1)GOROOT:表示Go语言环境在计算机上的安…...

【深度学习】ChatGPT

本文基于Andrej Karpathy(OpenAI 联合创始人,曾担任特斯拉的人工智能和自动驾驶视觉主管)在Microsoft Build 2023上的演讲整理而成(完整的视频在文末,直接拖到文章底部),主要分为2大部分: 1.如何训练GPT(可…...

爬虫--爬取自己想去的目的的车票信息

前言: 本篇文章主要作为一个爬虫项目的小练习,来给大家进行一下爬虫的大致分析过程以及来帮助大家在以后的爬虫编写中有一个更加清晰的认识。 一:环境配置 Python版本:3.7 IDE:PyCharm 所需库:requests&#xff0…...

Metinfo6.0.0任意文件读取【漏洞复现】

文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现代码审计漏洞点 1.5、深度利用EXP编写 1.6、漏洞挖掘1.7修复建议 1.1、漏洞描述 漏洞名称:MetInfo任意文件读取 漏洞简介:MetInfo是一套使用PHP和MySQL开发的内容管理系统,其…...

Postgresql JSON对象和数组查询

文章目录 一. Postgresql 9.5以下版本1.1 简单查询(缺陷:数组必须指定下标,不推荐)1.1.1 模糊查询1.1.2 等值匹配1.1.3 时间搜索1.1.4 在列表1.1.5 包含 1.2 多层级JSONArray(推荐)1.2.1 模糊查询1.2.2 模糊查询 NOT1.2.3 等值匹配…...

搭配购买——并查集+01背包

Joe觉得云朵很美,决定去山上的商店买一些云朵。 商店里有 n 朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有…...

Qwen3.5-2B轻量化技术解析:模型剪枝+KV Cache优化如何降低70%显存占用

Qwen3.5-2B轻量化技术解析:模型剪枝KV Cache优化如何降低70%显存占用 1. 轻量化模型的核心价值 在AI模型部署领域,大模型的资源消耗一直是阻碍其广泛应用的瓶颈。Qwen3.5-2B作为一款仅20亿参数的多模态基础模型,通过创新的轻量化技术实现了…...

LaTeX-PPT:重新定义PowerPoint公式编辑体验

LaTeX-PPT:重新定义PowerPoint公式编辑体验 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 一、学术演示的隐形效率杀手 周三下午的组会演示前,李教授盯着屏幕上歪歪扭扭的公式叹气…...

5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题

5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...

显卡驱动深度清理指南:用DDU解决驱动残留难题

显卡驱动深度清理指南:用DDU解决驱动残留难题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 你是…...

AntdUI实战:用WinForm和.NET 6给老旧内部管理系统“换肤”的完整记录

AntdUI实战:用WinForm和.NET 6给老旧内部管理系统“换肤”的完整记录 当企业内部的WinForm系统运行超过十年,那些灰底蓝框的界面早已与现代审美格格不入。去年接手某制造业ERP系统改造时,我面对的是一个基于.NET Framework 4.0的"古董&q…...

Qwen3-0.6B-FP8应用场景:开发者测试LLM应用前端UI兼容性的沙盒环境

Qwen3-0.6B-FP8应用场景:开发者测试LLM应用前端UI兼容性的沙盒环境 1. 引言:为什么需要一个轻量级的“测试沙盒”? 如果你正在开发一个基于大语言模型的应用,比如一个智能客服系统、一个文档助手,或者一个创意写作工…...

开源小模型也能干大事:MinerU图文理解实战教程

开源小模型也能干大事:MinerU图文理解实战教程 1. 项目简介 OpenDataLab MinerU 是一个专门针对文档理解设计的智能多模态模型,基于 OpenDataLab/MinerU2.5-1.2B 模型构建。虽然只有 1.2B 参数,但这个模型在文档解析方面表现出色&#xff0…...

FlowState Lab结合计算机网络概念:模拟智能网络配置助手

FlowState Lab结合计算机网络概念:模拟智能网络配置助手 1. 网络运维的痛点与AI解决方案 网络工程师每天都要面对复杂的网络环境和层出不穷的故障问题。传统排错流程往往需要工程师手动检查设备配置、分析日志信息、查阅技术文档,这个过程耗时耗力且容…...

5分钟搞定!Clipy剪贴板管理神器让Mac效率翻倍

5分钟搞定!Clipy剪贴板管理神器让Mac效率翻倍 【免费下载链接】Clipy Clipboard extension app for macOS. 项目地址: https://gitcode.com/gh_mirrors/cl/Clipy 还在为macOS只能记住最后一次复制内容而烦恼吗?Clipy是一款专为Mac用户设计的剪贴板…...

Arduino蓝牙TPMS解析库:7字节广告数据逆向与嵌入式解码实践

1. BluetoothTPMS 库技术解析:面向嵌入式系统的蓝牙胎压监测数据解码实践1.1 项目定位与工程价值BluetoothTPMS 是一个专为 Arduino 平台设计的轻量级开源库,核心目标是实现对低成本商用 TPMS(Tire Pressure Monitoring System)传…...