我正在尝试创建一个JSON对象,但在JSON对象中获取“类”键。
我正在使用this库。
以下是我正在使用的代码。
//Class being used for JSON conversion.
package com.test;
public class Sample {
public String name;
public String surname;
public Sample(String name, String surname) {
this.name = name;
this.surname = surname;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
}
public static void main(String[] args){
Sample sample = new Sample("Sam", "Sammy");
System.out.println(new JSONObject(sample));
}
我得到了json:
{"class":"class com.test.Sample","surname":"Sammy","name":"Sam"}
答案 0 :(得分:5)
constructor you are using被描述为(强调我的):
使用bean getter从Object构造一个JSONObject。 它反映了对象的所有公共方法。对于没有参数且名称以“get”或“is”开头,后跟大写字母的每个方法,将调用该方法,并将一个键和从getter方法返回的值放入新的JSONObject中。通过删除“get”或“is”前缀来形成密钥。如果第二个剩余字符不是大写字母,则第一个字符将转换为小写字母。例如,如果一个对象有一个名为“getName”的方法,并且调用object.getName()的结果是“Larry Fine”,那么JSONObject将包含“name”:“Larry Fine”。
看起来这个构造函数不会对.getClass()
public
中Object
的{{1}}做例外;)
答案 1 :(得分:1)
快速执行此操作:Remove类属性。
JSonObject obj = new JSONObject(sample);
obj.remove("class");
System.out.println(obj);