Java Gson实现类的数量取决于花括号?

Java Gson实现类的数量取决于花括号?,java,android,gson,Java,Android,Gson,我必须得到这样的Json字符串 {"a":{"b":{"c":"5"}}} 现在,从Gson文档中,我可以生成字符串。但是我需要三个类来生成它,我的实现有什么问题吗,有没有可能减少相同实现的类 请查找用于生成此的类 public class c { String c="5";} public class b { @SerializedName("b") c cobj = new c();} public class a { @SerializedName("a") b cobj =new

我必须得到这样的Json字符串

{"a":{"b":{"c":"5"}}}
现在,从Gson文档中,我可以生成字符串。但是我需要三个类来生成它,我的实现有什么问题吗,有没有可能减少相同实现的类

请查找用于生成此的类

public class c { String c="5";}

public class b {
@SerializedName("b")
c cobj = new c();}

public class a {
 @SerializedName("a")
b cobj =new b();}

public static void main (String args[]){
    Gson gs=new Gson();
    a aobj=new a();
    System.out.println(gs.toJson(aobj));
}

请协助……

没有问题。在JSON中,
{}
表示一个对象,因此字符串提供三个嵌套对象。见

如果您正在寻找内部类,
static
内部类可以直接用于序列化和反序列化。不确定下面的内容是否比您的要短得多,因为三组大括号意味着三个类。由于字段名不同,因此它意味着三个不同的类,并且内部数据结构的开发应该符合逻辑意义,而不仅仅是“更短”

您可以通过重命名字段以使其与所需字段匹配来删除注释

class TopObj {
    static class AClass {
        static class BClass {
            String c = "5";
        };    
        B b = new b();
    };    
    a a = new a();
};
另一种观点是,所有三个类都是相同的类类型,但只是使用不同的字段。转换为JSON时,仅填充具有值的字段。如上所述,您的数据意味着不同的类,但您可以使用一个类定义来实现--

那么您只使用所述的字段

Trickery top = new Trickery();
top.a = new Trickery();
top.a.b = new Trickery();
top.a.b.c = "5";
System.out.println(gson.toJson(top));

有没有办法减少类结构…我们可以包含内部类吗?对内部类来说是的。如果要折叠为未使用的字段而不是其他类,则类结构为“是”。请参见编辑。实际上,从使用的角度来看,您应该选择最好的数据模型,而不仅仅是类定义较少的数据模型。
Trickery top = new Trickery();
top.a = new Trickery();
top.a.b = new Trickery();
top.a.b.c = "5";
System.out.println(gson.toJson(top));