Spring @ResponseBody:格式化JSON以放置状态

时间:2013-05-14 20:54:11

标签: android json spring jackson

我正在尝试使用spring来创建一个Web服务,使用jackson技术将一些pojos映射为JSON,但是我有一个问题,当我将列表映射为JSON时,它会创建一个格式错误的{{ 1}}喜欢:

JSON

我想创建一个["idLine":"a61dcedb-4a6b-4f8f-bbdd-32cc51e861b2", "name":"line1", "code":"pru1" ] ,一个mapper或类似的内容,以获得如下响应:

filter

我尝试使用{ status:"OK", data:[ {"idLine":"a61dcedb-4a6b-4f8f-bbdd-32cc51e861b2", "name":"line1", "code":"pru1" }] } ,但没有结果。 感谢。

更新 该行是解析和调用格式错误的异常(它属于外部库)的行

ObjectMapper

我正在尝试解析的JSON是:

result = (JSONObject) new JSONTokener(str).nextValue();

为了澄清,我使用@ResponseBody在Spring上序列化Pojo,然后由android检索响应,并使用引发异常的JSONObject进行解析。

服务器端方法:

[{"idLine":"a61dcedb-4a6b-4f8f-bbdd-32cc51e861b2","name":"linea1","code":"pru1","colour":"#ff3200","means":"Bus","type":"urban","notes":"","state":true,"timetableInterurbans":[]}]

1 个答案:

答案 0 :(得分:0)

最后,我通过使用名为JSONResponse的辅助类来解决它。它有两个属性,一个表示请求的状态,另一个表示数据响应。

public class JSONResponse{
    private Object data;
    private boolean status;

    public JSONResponse (Object data){
        this.data = data;
        this.status = this.data != null;
    }

    //getters and setters for both attributes to be serialized
}

现在我唯一需要做的就是使用里面的数据序列化这个辅助对象,使用@RequestBody JSONResponse作为每个控制器中每个方法的返回值,在多个API调用上获得一致的JSON响应。