java - 在不解析的情况下将属性插入 JSON 字符串
问题描述
我有一个 JSON 字符串,我想向其中注入一个字段,最好不必解析 JSON。有什么好的方法可以做到这一点?主要优先事项是性能。
我能想到的可能的方法:
- 检查第一个非空白字符是否为,在字符串中直接
{
插入到它之后。"myField":"myValue",
如果 JSON 已包含"myField"
或数据没有属性,则会出现问题。 - 解析 JSON 树并正常插入值。易于检查现有
myField
属性,但选择较慢。
有什么我没有想到的方法吗?可能是杰克逊特定的解决方案?
解决方案
使用 Jackson 操作 JSON 文档应该不会对性能产生太大影响。只需使用 Jackson 树模型解析 JSON 文档:
ObjectMapper mapper = new ObjectMapper();
JsonNode tree = mapper.readTree(json);
执行您的操作,然后将树写回 JSON。
主要优先事项是性能。
根据 Donald Knuth 的说法,过早优化是万恶之源。这意味着在没有测量到的性能问题的情况下,您不应该优化,因为您认为您会获得性能提升。
可以执行一些明显的优化,但在可以测量之前,应避免任何不是非常清晰的优化。
推荐阅读
- reactjs - 反应道具没有被传递给组件
- opencv - 我在哪里可以获得 COCO 数据集上 YOLOv4 Tiny 的预训练模型?
- shader - 错误 X3503:“main_Impl”:函数返回值缺少语义,带有“d2d1effecthelpers.hlsli”
- ansible - 如果任务被跳过,则任务不会被提及
- perl - Perl - 替换除最后一次出现的所有内容
- r - 使用 ranger 计算多分类混淆矩阵时出错
- python - 如何修复不返回 HttpResponse 对象的 Django 视图?(CS50 项目一)
- java - Spring Cloud Gateway IPv4 地址无效
- javascript - 动态PNG图像背景
- php - 试图通过 PHP 强制下载