我正在尝试使用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":[]}]
答案 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响应。