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

字符串过长导致编译报错的问题及解决办法 - 详解

1、背景

一次在需要把一个比较大的json字符串转换为一个集合,当时没有考虑直接用字符串去定义,在编译的时候,控制台提示“字符串长度过长”,编译报错了。

2、解决方案

后面把这个大的json放到一个json文件中,然后去读取这个文件的内容,再把他转换为对应的集合。

3、实现方式

com.fasterxml.jackson.corejackson-databind2.13.0 

com.fasterxml.jackson.corejackson-core2.13.0

com.fasterxml.jackson.corejackson-annotations2.13.0
方式一:
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature; // 关键类
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DepartmentJsonParser {// 关键:配置ObjectMapper忽略未识别的JSON字段private static final ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);// 禁用“未知属性报错”,改为忽略public List parseJsonFromFile(String filePath) throws IOException {return objectMapper.readValue(new File(filePath),new TypeReference>() {} // 泛型类型引用,确保解析为List);}public static void main(String[] args) {try {DepartmentJsonParser parser = new DepartmentJsonParser();// 注意:文件路径建议用绝对路径,避免相对路径找不到文件(比如D:/data/departments.json)List departments = parser.parseJsonFromFile("D:/departments.json");System.out.println("解析成功,共 " + departments.size() + " 个部门");} catch (IOException e) {e.printStackTrace();// 建议补充日志打印,方便定位问题(如文件不存在、JSON格式错误)System.err.println("解析失败:" + e.getMessage());}}
}
方式二:
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature; // 关键类
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DepartmentJsonParser {// 关键:配置ObjectMapper忽略未识别的JSON字段private static final ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);public static void main(String[] args) {try {// 读取resources目录下的departments.json(工程化推荐)InputStream is = DepartmentJsonParser.class.getClassLoader().getResourceAsStream("departments.json");List departments = objectMapper.readValue(is, new TypeReference>() {});System.out.println("解析成功,共 " + departments.size() + " 个部门");} catch (IOException e) {e.printStackTrace();// 建议补充日志打印,方便定位问题(如文件不存在、JSON格式错误)System.err.println("解析失败:" + e.getMessage());}}
}

http://www.rkmt.cn/news/28469.html

相关文章:

  • 厨房电秤方案:介绍一款电子秤芯片sic8632
  • CF981F Round Marriage
  • macOS直接使用pip安装报错
  • 《借力JBoltAI框架,Java技术开发公司开启高效开发新范式》
  • Wireshark抓包教程:JSON和HTTPS抓取
  • SMARTFORMS去掉数值后面的小数点
  • 数字征程,逐级而上;生态协同,智绘新篇—— 艾拓琪威灏 与 哲讯顺维 数字化战略合作签署暨CRMMES项目启动会隆重举行
  • 2025 年唐山油漆生产厂家最新推荐榜单:精选优质企业,解析专业品牌选购指南唐山油漆批发/唐山油漆生产公司推荐
  • 做题笔记21
  • 权威调研榜单:重庆旧房加层改造公司TOP3榜单好评深度解析
  • 2025 年 MVR 蒸发器源头厂家最新推荐排行榜:聚焦食品医药化工环保领域优质设备,助力企业精准选型
  • Tailwind CSS 使用入门
  • 实用指南:Calico 网络插件在 K8s 集群的作用
  • godot + Avalonia 渲染第三方UI
  • 2025-10-23 cocos安装
  • 用EasyPlayer播国标GB28181算法算力平台EasyGBS视频流,居然比点外卖还简单
  • 测试美化效果
  • idea错误解决记录
  • 2025 年连接器厂家最新推荐榜单:覆盖多领域优质产品,为企业选购提供权威参考的国内制造商精选汽车/高速/板载/航空连接器公司推荐
  • 2025年护栏厂家权威推荐榜单:不锈钢栏杆、桥梁防撞护栏、河道景观护栏等全品类生产供应商精选
  • Windows 10 version 22H2 中文版、英文版下载 (2025 年 10 月更新)
  • CF1140E Palindrome-less Arrays
  • foobar2000下载安装教程:从入门到配置的完整指南(2025最新版)
  • 编织袋定制生产厂家:基于专业测评的技术、工艺及市场优势深度分析
  • 可视化图解算法65:有效的字母异位词
  • 2025 年传感器厂家最新推荐排行榜:磁致伸缩 / 防爆 / 防水 / 隔爆 / 线性等类型传感器企业实力与产品优势解析
  • 2025 年加热线圈厂家最新推荐排行榜:聚焦行业头部企业,深度解析优质品牌核心优势与选购价值轴承外感应加热线圈 / 轴承座内圈加热线圈 / 感应加热线圈公司推荐
  • 互动问答直播版双端小程序管理系统:开启直播变现新蓝海
  • 水贝培育钻项链生产厂家口碑榜:基于专业测评的技术、工艺及市场优势深度分析
  • IIc死锁的问题