gpt4 book ai didi

java - 在 Spring Boot 应用程序中验证 json

转载 作者:行者123 更新时间:2023-12-01 17:06:09 26 4
gpt4 key购买 nike

在 Spring Boot 应用程序上工作,其中一项功能将包括软件更新。它将在 JSON 中进行描述,如下所示:

{
"DeviceProfile": {
"firmware": {
"name": "firmware_a",
"version": "2.0.24.3",
"url": " ",
"isPatch": true,
"patchdependency": "1.0.0"
},
"software": [
{
"name": "mySoftware1",
"version": "1.0.0",
"url": "http://www.example.com",
"action": "install"
},
{
"name": "mySoftware2",
"version": "1.1.0",
"url": "http://www.example.com",
"action": "install"
},
{
"name": "mySoftware3",
"version": "2.0.0",
"url": "http://www.example.com",
"action": "install"
}
],
"configuration": [
{
"url": "https://www.examples.com",
"type": "myConfigType_1",
"name": "myConfig_1”
},
{
"url": "https://www.examples.com",
"type": " myConfigType_2",
"name": "myConfig_2”
}
]
}
}

必须满足几个条件 - “配置”列表仅包含一个元素,并且其名称是已定义的字符串。 software 部分中每个元素的名称应以定义的前缀开头。还可以有其他附加条件。所以我想知道哪种方法是最好的方法。我可以使用 ObjectMapper 创建一个 DeviceProfile 类来提取数据,然后对每个条件进行检查,但我想知道是否有更好的方法来做到这一点。还请建议该方法的单元测试。

最佳答案

Spring 附带了一个名为 @JsonDeserialize 的注释,您可以在其中拥有自己的反序列化器并按照您想要的方式处理它们。以这个类为例:

public class CustomDeserializer extends JsonDeserializer<Long> {
@Override
public Long deserialize(JsonParser jsonParser, DeserializationContext
deserializationContext) throws IOException {


}
}

您可以像上面一样扩展 Deserializer 类,并使用它反序列化您的数据,如下所示:

 @JsonDeserialize(using = CustomDeserializer.class)
private Long Id;

关于java - 在 Spring Boot 应用程序中验证 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61464291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com