Java JSONSerializer.toJSON结果为空
我正在尝试将Java对象序列化为JSON格式的字符串。我认为JSONSerializer是正确的答案,但当我调用它时,结果的大小等于0。 目前,我要解析的对象非常基本:Java JSONSerializer.toJSON结果为空,java,json,Java,Json,我正在尝试将Java对象序列化为JSON格式的字符串。我认为JSONSerializer是正确的答案,但当我调用它时,结果的大小等于0。 目前,我要解析的对象非常基本: public class Location { public double _latitude; public double _longitude; public void setLatitude(double latitude){ this._latitude = latitude;
public class Location {
public double _latitude;
public double _longitude;
public void setLatitude(double latitude){
this._latitude = latitude;
}
public void setLongitude(double longitude){
this._longitude=longitude;
}
}
我的电话也很简单:
JSONObject jsonResponseObject = (JSONObject) JSONSerializer.toJSON(location)
读了这本书,我想它会神奇地对任何物体起作用
任何帮助都将不胜感激我以前没有使用过jsonlib,但我认为如果您将它转换为JavaBean,它将如您所期望的那样工作。简而言之,实现Serializable,正确地编写getter和setter,它应该可以工作
编辑:我想这会很有帮助。您的类不提供任何getter。添加以下方法:
/**
* @return the _latitude
*/
public double getLatitude() {
return _latitude;
}
/**
* @return the _longitude
*/
public double getLongitude() {
return _longitude;
}
以下测试:
Location l = new Location();
l.setLatitude(1.0d);
l.setLongitude(2.0d);
JSONObject jsonResponseObject = (JSONObject) JSONSerializer.toJSON(l);
返回格式正确的json字符串:
{"latitude":1,"longitude":2}
文档中说,“接受JSON格式的字符串、映射、数组、集合、DynaBeans和JavaBeans。”您的位置不是这些。抱歉,如果我不清楚,我指的是函数的参数,它被称为“object”类型,我的位置继承自此对象,因此它应该对应于“any java object”描述或者至少我是这么认为的。非常感谢,最后很明显,序列化不是强制性的,但是你对getter的理解是完全正确的。