Java JSONSerializer.toJSON结果为空

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;

我正在尝试将Java对象序列化为JSON格式的字符串。我认为JSONSerializer是正确的答案,但当我调用它时,结果的大小等于0。 目前,我要解析的对象非常基本:

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的理解是完全正确的。