gpt4 book ai didi

java - JSON 响应中的属性可以有多种类型

转载 作者:行者123 更新时间:2023-12-01 19:00:17 25 4
gpt4 key购买 nike

我正在制作一个 Android native 应用程序,它使用 Retrofit2 向 WooCommerce API 发出请求,并在 GSON 的帮助下获取将它们与模型类 (POJO) 映射的 JSON 响应。我在 Android Studio 中使用一个插件,它可以自动从 JSON 响应生成 POJO。

当向 WC API 发送请求时,某些端点有以下类型的响应:

"meta_data": [
{
"id": 2881,
"key": "wc_productdata_options",
"value": [
{
"_bubble_new": "\"yes\"",
"_bubble_text": "معجون أسنان",
"_custom_tab_title": "معجون أسنان Oral-B",
"_custom_tab": "",
"_product_video": "",
"_product_video_size": "",
"_product_video_placement": "",
"_top_content": "",
"_bottom_content": ""
}
]
},
{
"id": 3077,
"key": "_wp_page_template",
"value": "default"
}
]

属性value可以是 StringList<Value>但 POJO 插件定义了 valueList<Value>因此,在解析响应时,我收到一个错误 GSON expects BEGIN_ARRAY but got STRING instead当它达到"value" : "default"时.

我该如何表示 value可以是模型类中的字符串或列表。

这是自动生成的 POJO meta_data

import com.google.gson.annotations.SerializedName;
import java.util.List;

public class MetaDatum {

@SerializedName("id")
private Long mId;
@SerializedName("key")
private String mKey;
@SerializedName("value")
private List<Value> mValue;

public Long getId() {
return mId;
}

public void setId(Long id) {
mId = id;
}

public String getKey() {
return mKey;
}

public void setKey(String key) {
mKey = key;
}

public List<Value> getValue() {
return mValue;
}

public void setValue(List<Value> value) {
mValue = value;
}

}

最佳答案

我将 value 定义为 Object 类型,因此它可以以某种方式转换为 JSON 中的任何内容。成功了!

关于java - JSON 响应中的属性可以有多种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59644578/

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