Kar*_*een 7 java serialization android gson
当我尝试将基本对象转换为json时,它似乎返回null我尝试过的所有内容.怎么了?
public class Person {
public String Name;
public String Address;
}
Run Code Online (Sandbox Code Playgroud)
Person person = new Person() {
{
Name = "John";
Address = "London";
}
};
Gson gson = new Gson();
String jsonPerson = gson.toJson(person);
Run Code Online (Sandbox Code Playgroud)
dur*_*597 13
查看由Sotirios Delimanolis链接的副本.请注意,您使用的双括号初始值设定项有效地创建了一个匿名子类,它具有一些令人讨厌的副作用,例如每次使用它时创建新类,以及像Gson这样的东西.
如果您创建了这样的构造函数,它将起作用:
class Ideone
{
public class Person {
public String Name;
public String Address;
public Person(String Name, String Address) {
this.Name = Name;
this.Address = Address;
}
}
public static void main (String[] args) throws java.lang.Exception
{
Person person = new Person("John", "London");
// System.out.println(person.Name);
Gson gson = new Gson();
String jsonPerson = gson.toJson(person);
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你不应该用大写字母命名你的字段; 以大写字母开头,用小写字母开头.
请查看Google Java样式指南,以获取有关命名约定的良好参考
实例化对象的方式创建了一个匿名类,因此您失去了类型。您可以使用 aTypeToken来解决此问题,如下所示
Type personType = new TypeToken<Person>(){}.getType();
Gson gson = new Gson();
String jsonPerson = gson.toJson(person, personType);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6494 次 |
| 最近记录: |