0

我正在解析 JSON 数据,并使用 GSON 将结果存储在 Java 对象中。我的问题是,JSON 字符串中的字段是否应该与类中的实例变量匹配?包括类名?例如,

如果这是我的 JSON 字符串 -

"telephone":
{
    "landline":"1-818-502 8310"
}

我应该有如下课程吗?

public class Telephone 
{
    private String landline;
}

我问这个的原因是,当我使用 gson 的 fromJson(obj) 时,该对象不包含任何值。它将所有记录显示为空。我想知道它是否因此而引发错误。

请注意 - 这不是完整的代码。我的 JSON 数据非常庞大,所以我无法将其粘贴到此处。上面的电话字符串只是我的 json 字符串中的许多嵌入字符串之一。

4

1 回答 1

1
  1. 这是错误的 JSON:

       "telephone":{"landline":"1-818-502 8310"}
    

    JSON 对象以 a 开头,以 a{结尾}。所以,它应该是这样的

     {"name": "somename", "telephone":{"landline":"1-818-502 8310"}, ...}
    
  2. 是的。如果您使用 Eliran 正确提到的默认 Gson 实例,则类中的属性应具有与 JSON 字符串中完全相同的大小写和字符。请注意,您必须拥有只有 getter/setter 的属性,而不是属性不起作用。

  3. 你提到你正在使用内部类。它可能不适用于默认的 Gson 实例。您可能需要registerTypeAdapter像这样使用:

    gson.registerTypeAdapter(MyType.class, new MyInstanceCreator());
    

    参考:https ://sites.google.com/site/gson/gson-user-guide#TOC-Custom-Serialization-and-Deserialization

于 2013-07-20T03:34:17.703 回答