【发布时间】:2015-07-24 20:18:05
【问题描述】:
开发球衣休息网络服务。我需要以以下格式发送 json 输出。我还在下面粘贴了我的 java 对象。但是我的代码无法将我的 java 对象转换为 json。我猜我的 java 对象没有正确注释
{result:[2]
{city:[
cityId : "",
cityDesc:"",
]
area:[
areaId : "",
areaDesc:"",
]
userId : ""},
{city:[
cityId : "",
cityDesc:"",
]
area:[
areaId : "",
areaDesc:"",
]
userId : ""}}
以下是我的 java 对象
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "area", propOrder = {
"areaId",
"areaname"})
public class Area {
private String areaId;
private String areaDesc;
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
public String getAreaDesc() {
return areaDesc;
}
public void setAreaDesc(String areaDesc) {
this.areaDesc = areaDesc;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "city", propOrder = {
"cityId",
"cityName"})
public class City {
private String cityId;
private String cityDesc;
public String getCityId() {
return cityId;
}
public void setCityId(String cityId) {
this.cityId = cityId;
}
public String getCityDesc() {
return cityDesc;
}
public void setCityDesc(String cityDesc) {
this.cityDesc = cityDesc;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Response", propOrder = {
"userId",
"city",
"area"})
public class Response {
@XmlAttribute
protected String userId;
@XmlAttribute
protected City city;
@XmlAttribute
protected Area area;
@XmlRootElement(name = "Result")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Result", propOrder = {
})
public class Result {
private List<Response> result = new ArrayList<Response>();
public List<Response> getResult() {
return result;
}
public void setResult(List<Response> result) {
this.result = result;
}
我的资源方法id如下
@autowired
private C c;
@POST
@Path("/bil")
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
public Result collBil(@Valid Input input){
Result result = new Result();
String username=iInput.getUserName();
if(null != username){
try{
result=c.getId(username);
}
catch(Exception e){
e.printStackTrace();
}
}
return result;
}
我正在使用球衣框架。我能够从我的函数成功返回 Result 类型。但在那之后,当我检查我的其他客户端时,它会抛出 500 错误。我的任何方法都没有抛出异常。但是我的 java 对象没有转换为 json。任何帮助表示赞赏
【问题讨论】:
-
如果您在客户端收到错误 500,您必须在服务器部分出现错误 - 所以去检查日志吧!此外,您的 JAXB 映射可能有问题:您有一个 Result 类、一个 Response 类、一个 Area 类 - 但粘贴的 JSON 只是一个城市列表
-
我已经编辑了我的 json。我需要上述格式。我需要响应类列表作为我的 json 输出。我没有在服务器端看到错误。一旦我从终点返回。 Jersey 接管了转换为 json 的工作。它在那边的某个地方抛出问题
-
当您在客户端收到错误响应(尤其是 500 Internal Server Error)时,这意味着您需要阅读服务器上的日志以查找错误的详细信息。
-
如果有人验证我编写的 java 对象会很有帮助。我没有在我的控制台中获取日志
-
你所谓的 JSON 甚至不是有效的 JSON 格式。是什么让您认为您需要这种格式。显示您的资源方法,它期望什么类型?显示您的客户端代码。