Java 当字段名和/或值包含空格前导/尾随时,如何使用jackson反序列化JSON字符串
输入json:Java 当字段名和/或值包含空格前导/尾随时,如何使用jackson反序列化JSON字符串,java,spring-boot,jackson,Java,Spring Boot,Jackson,输入json: {"id ": " 1"} 定义的java类: class ID { String id; } 如何正确获取ID对象的“ID=1”而不是“ID=null”您可以使用如下注释: class ID { @JsonProperty("id ") String id; public String getId() { return id; } } 然后: String id = myIdClassInstance
{"id ": " 1"}
定义的java类:
class ID {
String id;
}
如何正确获取ID对象的“ID=1”而不是“ID=null”您可以使用如下注释:
class ID {
@JsonProperty("id ")
String id;
public String getId() {
return id;
}
}
然后:
String id = myIdClassInstance.getId().trim();
但这只适用于空间数量固定的情况
此外,您只能以明确定义的名称访问对象的字段
如果您确实希望
“id”
和“id”
指向同一字段,则需要在发送之前手动格式化JSON。id周围的空格数是否始终相同?否,这取决于用户输入键id
的最佳方式是trim()
前端应用程序中的用户输入。至于值1
,您可以在控制器中对其进行修剪。Hi@Kartik,输入来自其他人的java代码,我的代码由于某种原因无法中继到其他人的代码。因此没有前端。目前,我能做的唯一解决方案是将输入作为映射接收,格式化映射中的每个元素,然后将它们转换为我的对象。但它并不优雅,我认为空间的数量不是固定的。我在spring引导控制器方法的一个对象参数上使用@RequestBody注释。那么,如何手动格式化输入?感谢you@Alex,您在发送之前使用JavaScript生成JSON,对吗?您可以这样做:{[idName]:idValue,…}
,其中varidname='id'.trim();var idValue='1'.trim()
Hi Artiow,输入来自其他人的java代码,出于某种原因,我的代码无法依赖于其他人的代码您救了我的命谢谢我亲爱的Artiow