gpt4 book ai didi

JSON属性数据变化很大时的Java反序列化

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:58 26 4
gpt4 key购买 nike

手头的任务:考虑以下 JSON 响应模型,每个 API 响应都将符合此响应,显然数据会有所不同。我们称之为 ResponseModel:

{
"isErroneous": false,
"Message": "",
"Result": null,
"Data": {
"objId": 38,
"objName": "StackO",
"objDescription": "StackODesc",
"objOtherId": 0,
"objLocationId": 1
}
}

无论 Data: 中的数据如何,如何反序列化此响应?数据可以包含不同类型的单个对象,例如狗、汽车。它还可以包含一系列汽车或狗,例如不仅仅是上面的一个。

它还可以包含一辆汽车、汽车发动机 obj、汽车驾驶员座椅 obj。

简而言之,总是会出现相同的响应,但 Data 的值可能会有很大差异,我想尽力将其反序列化为某种 Result.class,以适应所有可能的情况,我如何最好地处理这个问题?设置类 ResponseModel.class 对于除“Data”类型之外的所有类型都很容易。

谢谢

这是可以返回的另一个示例

{
"isErroneous": false,
"Message": "",
"Result": null,
"Data": [
{
"carId": 1,
"carName": "car#1",
"carDescription": "car#1",
"carOtherId": 1,
},
{
"carId": 2,
"carName": "car#2",
"carDescription": "car#2",
"carOtherId": 2,
},
{
"carId": 3,
"carName": "car#3",
"carDescription": "car#3",
"carOtherId": 3,
},

正如您在第二个示例中看到的,我们返回汽车列表,但在第一个响应中我们只返回一个对象。我是否过于抽象了?我应该为 API 等的每次调用设置自定义响应吗?

我需要编写集成测试,断言反序列化的对象等于我每次期望的对象。

最佳答案

您可以尝试检查您的 json 输入是否包含 "Data": {"Data": [ 然后将其解析为相应的单独类

但是......也许这不是最好的方法

关于JSON属性数据变化很大时的Java反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47112218/

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