使用保留关键字作为变量名创建Java对象



我有需要转换为Java对象的JSON。我需要处理的JSON可以是这样的:

{
    "documents": [
        {
        "title": "Jobs",
        "is-saved": false,
        "abstract": "<span class="hit">Jobs</span> may refer to:nn* Steve <span class="hit">Jobs</span> (1955–2011), co-founder and former CEO of consumer electronics company...<br />",
        "id": "Jobs",
        "url": "http://en.wikipedia.org/wiki/Jobs"
        }
    ],
   "keywords_local": [
       {
        "keyword": "Jobs",
        "interest": 1,
        "angle": 0
       }
   ],
   "sessionid": "6cd6402e-1f67-45a8-b0fa-e79a5d0d50f4",
   "q": "Jobs",
}

当在搜索引擎上输入搜索关键字时,会返回此JSON,在本例中为"Jobs"。我还没有命名这些要创建的变量,这个JSON只是从一个类似的早期应用程序中"提供"给我的。所以我显然在变量的保存和抽象方面遇到了麻烦。Abstract是一个保留关键字,在我读到的任何地方,保留关键字都不能用作变量名。

我无法访问我正在更新的上一个应用程序,我想关键是我需要自己解决;)但我现在有点停滞不前,不知道如何前进。

我是个新手,所以如果我问了一个愚蠢的问题,不要给我下地狱,这是我第一次编写任何类型的应用程序!)谢谢你的帮助!

如果使用GSON进行解析,则可以根据需要命名成员,并对其进行注释以进行映射。

@SerializedName("abstract")
private String abstractText;

另一个选项是使用Jackson,并使用@JsonProperty注释。。

@JsonProperty("abstract")
private String abstractText;

实际上,这取决于您使用的工具。使用直接映射到自定义POJO的工具(如GSON、Jackson),您需要将JSON字段名与Java正确有效的字段名进行映射。

如果您使用一个mors基本库,比如JSON.org,那么就没有必要这样做,因为您可以将其解析为特定的对象来处理它

JSONObject obj = new JSONObject(" .... ");
JSONArray arr = obj.getJSONArray("documents");
String abstractValue = arr.getJSONObject(0).getString("abstract");

最新更新