gpt4 book ai didi

java - 使用 GSON,当某些键具有特殊字符时如何将 JSON 转换为 Java

转载 作者:行者123 更新时间:2023-11-29 03:17:38 25 4
gpt4 key购买 nike

一个外部 API 给我一个 JSON 对象,如下所示:

{
"@date": "1407436242",
"@duration": "2411",
"Entry": {
"@position": "3",
"@playerName": "fred"
}
}

如您所见,所有键都以 @ 符号开头,只有一个键除外,它是一个嵌套对象。我们正在使用 GSON 来解析 JSON,我正在尝试尽可能简单地执行此操作,而无需手动将每个键转换为有效的 Java 字段名称。

我目前正在尝试使用这段代码:

MyObject response = gson.fromJson(stringInput, MyObject.class);

这不匹配除 TournamentEntry 之外的任何字段。

我尝试添加一个 gson 字段命名策略,但这似乎是一种全有或全无的方法,并且无法处理某些键有“@”符号而有些键没有的情况。

我如何告诉 GSON 在转换为 Java 字段名称时去掉“@”符号,同时仍然处理没有 @ 符号的嵌套对象?

最佳答案

Gson 提供了 SerializedName应该允许使用那些时髦的 json 标识符的注释。这将使您的类(class)看起来像这样:

package com.example;

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

public class Event {

@SerializedName("@date")
private Date date;

@SerializedName("@duration")
private long duration;

@SerializedName("Entry")
private Entry entry;

}

package com.example;

import com.google.gson.annotations.SerializedName;

public class Entry {

@SerializedName("@position")
private int position;

@SerializedName("@playerName")
private String playerName;

}

@SerializedName 的优点在于它在每个字段的基础上工作,因此您只需要在需要时进行注释。

关于java - 使用 GSON,当某些键具有特殊字符时如何将 JSON 转换为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25582968/

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