Gun*_*lan 17 java android json gson
我正在上课,
public class Student {
public int id;
public String name;
public int age;
}
Run Code Online (Sandbox Code Playgroud)
现在我要创建新学生,
//while create new student
Student stu = new Student();
stu.age = 25;
stu.name = "Guna";
System.out.println(new Gson().toJson(stu));
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出,
{"id":0,"name":"Guna","age":25} //Here I want string without id, So this is wrong
Run Code Online (Sandbox Code Playgroud)
所以我在这里想要String
{"name":"Guna","age":25}
Run Code Online (Sandbox Code Playgroud)
如果我想编辑旧学生
//While edit old student
Student stu2 = new Student();
stu2.id = 1002;
stu2.age = 25;
stu2.name = "Guna";
System.out.println(new Gson().toJson(stu2));
Run Code Online (Sandbox Code Playgroud)
现在输出是
{"id":1002,"name":"Guna","age":25} //Here I want the String with Id, So this is correct
Run Code Online (Sandbox Code Playgroud)
如何使用字段[在某些时候]创建一个JSON字符串,没有字段[在某些时候].
任何帮助都会非常值得一提.
谢谢.
Pan*_*mar 24
更好的是使用@expose注释
public class Student {
public int id;
@Expose
public String name;
@Expose
public int age;
}
Run Code Online (Sandbox Code Playgroud)
并使用下面的方法从您的对象获取Json字符串
private String getJsonString(Student student) {
// Before converting to GSON check value of id
Gson gson = null;
if (student.id == 0) {
gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.create();
} else {
gson = new Gson();
}
return gson.toJson(student);
}
Run Code Online (Sandbox Code Playgroud)
如果将其设置为0,它将忽略id列,它将返回带有id字段的json字符串.
| 归档时间: |
|
| 查看次数: |
34480 次 |
| 最近记录: |