使用带对象的GSON来打印JSON对象

use*_*124 3 java json gson

阅读文档后,有关GSON的快速问题.这就是我对JSON的看法:

var json = { 
     id: "person1", 
     name: "person 1", 
     data: {"email": "1@test.com"},
     children: [{
                    id: "person2",
                    name: "person 2",
                    data: {"email": "2@test.com"},
                    children: []
                },{
                    id: "person3",
                    name: "person 3",
                    data: {"email": "3@test.com"},
                    children: []
                }
                ] 
} 
Run Code Online (Sandbox Code Playgroud)

1)我可以在不使用Java中的Class对象的情况下使用GSON吗?可以使用GSON和Java轻松完成.意思是我可以做类似的事情

GSON gson = new GSON();
gson.toJson("name", "person 1");
Run Code Online (Sandbox Code Playgroud)

2)当我使用这个例子时:

            Gson gson = new Gson();
            Person p = new Contact(rs.getString("name"));
            gson.toJson(p);
            String json = gson.toString();
            System.out.println(json);
Run Code Online (Sandbox Code Playgroud)

我的Json输出不是我的预期.Person实例是一个公共类实例,只有一个属性 - 名称(用于测试目的).为什么我会在输出中看到基本上Factory,serializeNulls等?

谢谢

Jes*_*son 8

替换这个:

gson.toJson(p);
String json = gson.toString();
Run Code Online (Sandbox Code Playgroud)

有了这个:

String json = gson.toJson(p);
Run Code Online (Sandbox Code Playgroud)