繁体   English   中英

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

[英]Creating Java Object with reserved keywords as variable name

我有需要转换为Java对象的JSON。 我需要处理的JSON可能如下所示:

{
    "documents": [
        {
        "title": "Jobs",
        "is-saved": false,
        "abstract": "<span class=\"hit\">Jobs</span> may refer to:\n\n* 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",
}

在searchengine上输入搜索关键字时返回此JSON,在本例中为“Jobs”。 我没有命名这些要创建的变量,这个JSON只是从一个类似的早期应用程序“给予”我。 所以我显然遇到了变量保存和抽象的问题。 Abstract是一个保留关键字,在任何地方我读取保留关键字都不能用作变量名。

我无法访问我之前更新的应用程序,我想这就是我需要自己解决这个问题;)但我现在有点站不住了,不知道怎么做前进。

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

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

@SerializedName("abstract")
private String abstractText;

你有另一个选择是使用Jackson,并使用@JsonProperty注释。

@JsonProperty("abstract")
private String abstractText;

实际上,它取决于您使用的工具。 使用直接映射到自定义POJO的工具(如GSONJackson ),您需要使用Java正确且有效的字段名称映射JSON字段名称。

如果您使用mons基本库(如JSON.org ),则无需这样做,因为您将其解析为特定对象,允许您处理它。

JSONObject obj = new JSONObject(" .... ");

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM