java - 有没有更好的方法在 Java 中使用转义字符和双引号构建以下字符串?
问题描述
我有下面的字符串,其中包含转义字符。
{"Employee": "{\"Id\":\"1234\",\"isReady\":true}"}
有一个消息发布服务,它要求使用转义字符和双引号以完全相同的方式发布字符串。目前我正在下面显示的方法中构建上面的字符串。
String beginning = "{\"Employee\": \"";
String needToFormat = "{\"Id\":\"1234\",\"isReady\"";
String end = ":true}\"}";
String formatted = needToFormat.replaceAll("\"", "\\\\\"");
String finalOutput = beginning + formatted + end;
有一个更好的方法吗?由于限制,我无法使用 Apache 公共库。对于使用 Java 内置字符串方法或 Jackson Json 构建此功能的其他方法,我们将不胜感激。
解决方案
要正确安全地执行此操作,首先将具有属性“Id”和“isReady”的对象序列化为 JSON。然后使用该 JSON 字符串作为“Employee”字段的值。
与杰克逊:
private static final ObjectMapper mapper = new ObjectMapper();
public static String employeeToJson(String id, boolean ready) throws IOException {
String innerJson = mapper.writeValueAsString(Map.of(
"Id", id,
"isReady", ready));
return mapper.writeValueAsString(Map.of("Employee", innerJson));
}
推荐阅读
- arduino - 我想使用 AT 命令在 sim 模块 SIM 7600 EH 上启用数据漫游
- python - 如何在不重新创建实例的情况下将数据添加到 pandas.DataFrame
- javascript - 使用带有多个文件Javascript的构造函数
- javascript - 在 null 之后将值设置为零
- c# - 有助于了解代币交换服务以及如何实施?
- javascript - Typeorm Postgres 映射嵌套关系
- javascript - 如何在 next() 方法重定向后修复变量值始终为空
- flutter - 如何删除小部件“步骤”的标题
- google-apps-script - 列出活跃用户的宏
- css - 在 CSS 网格中居中文本