我正在努力用本地化反序列化世界天气在线API结果。
"hourly": [
{
"chanceoffog": "0",
"chanceoffrost": "0",
"chanceofhightemp": "0",
"chanceofovercast": "63",
"chanceofrain": "3",
"chanceofremdry": "0",
"chanceofsnow": "0",
"chanceofsunshine": "0",
"chanceofthunder": "0",
"chanceofwindy": "0",
"cloudcover": "88",
"DewPointC": "1",
"DewPointF": "34",
"FeelsLikeC": "4",
"FeelsLikeF": "39",
"HeatIndexC": "7",
"HeatIndexF": "44",
"humidity": "67",
"lang_ru": [
{
"value": "Пасмурно"
}
],
"precipMM": "0.0",
"pressure": "1033",
"tempC": "7",
"tempF": "44",
"time": "24",
"visibility": "10",
"weatherCode": "122",
"weatherDesc": [
{
"value": "Overcast"
}
],
"weatherIconUrl": [
{
"value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
}
],
"WindChillC": "4",
"WindChillF": "39",
"winddir16Point": "WNW",
"winddirDegree": "294",
"WindGustKmph": "17",
"WindGustMiles": "11",
"windspeedKmph": "14",
"windspeedMiles": "9"
}
]
是否有更好、更简单的解决方案,只为lang对象编写一个自定义反序列化器,并允许GSON自动反序列化其余数据?
我遇到了一个类似的问题,一个用户对象可以有id、userId或user_id,这就是我如何将这三个对象映射到id的方法。
public class UserDeserializer implements JsonDeserializer<User> {
@Override
public User deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
try {
User user = new GsonBuilder().create().fromJson(json, User.class);
if (user.id == null) {
JsonObject jsonObject = json.getAsJsonObject();
JsonElement userId = jsonObject.get("userid");
if (userId != null) {
user.id = userId.getAsString();
return user;
}
JsonElement user_id = jsonObject.get("user_id");
if (user_id != null) {
user.id = user_id.getAsString();
return user;
}
}
return user;
} catch (JsonParseException ex) {
ex.printStackTrace();
throw ex;
}
}
}
首先,我想说这是一个大学项目。 我有三节课<代码>订单抽象类和从订单继承的和类。 我使用Gson序列化/反序列化子类,但我遇到了一点问题。订单类有一个字段,gson使用该字段来确定订单类型,DineIn或Delivery。 序列化工作得很好。问题是,每当我尝试反序列化时,类型字段值都不会读取,并且总是设置为null,即使它存在于JSON文件中。当有很多字段时,就会发生这种情况,因为当我尝试在较小的
问题内容: 我今天在另一个问题中提出了这个问题,但是 由于措辞的方式,恐怕无法解决任何问题。 我有一个json输入,其中包含以下数据: 杰森 如您所见,option_value项是一个对象中的Array和 另一个对象中的简单字符串。 我怎样才能让Gson正确处理呢?我的类将此描述为 List对象,因此它适用于option_value是 数组的前几个项目,但是当它成为字符串时,应用程序崩溃,并且我收
问题内容: 我有一个像这样的POJO,我正在使用GSON序列化为JSON: 这是我的做法: 现在我的json将是这样的: 现在我的问题是:有什么办法可以代替更改变量名呢?在Gson中,我可以在变量顶部使用任何注释吗? 我想要这样的东西: 问题答案: 您可以使用@SerializedName(“ client_id”) 编辑: 您也可以使用它,以通用方式更改所有字段
我之前的问题没有得到任何结果,可能是我问得不对,或者太详细了。 现在我的基本问题是,如何将一个具有一个类名的JSON对象反序列化为一个具有不同类名的Java对象? 例如,服务器发送/期望的JSON类是“18”(我对此控制为零)。我的Java班不可能是“18”,所以是“_18”。 简单地执行new Gson().fromjson()没有任何帮助,即使使用了不同的命名策略;_18对象始终为NULL。从
问题内容: 假设我们有这样的结构: JSON: 和对应的POJO: 响应类 身体类 CatWrapper.class 类别 但是现在让我们说,我们具有相同的结构,但是我们得到的不是 我在上使用GSON(默认json解析器),在提供解决方案时请考虑一下。 我们可以在此处使用泛型,因此响应如下所示: 但是我们不能,因为字段名称是特定于类的。 题: 我如何做才能自动序列化它而不创建太多样板类?我并不真的
问题内容: Jackson json注释中以下jax-b注释的等效方式是什么? 我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。 重命名字段。 使用getter代替字段。 如果json / xml元素名称是Java保留字(例如“ ”,“ ”,“ ”等),则这些功能尤其重要。 因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“