我调用了一些web服务(用Ruby构造)并得到如下JSON响应:
{ "error_code": "02", "message": "Param not valid", "field_name": "title" }
import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "response") public class Response { private String error_code; private String message; private String field_name; public String getError_code() { return error_code; } public void setError_code(String error_code) { this.error_code = error_code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getField_name() { return field_name; } public void setField_name(String field_name) { this.field_name = field_name; } }
...为了读取WS客户端中WS调用的响应,我尝试:
Response response = responseWs.readEntity(Response.class);
...但我有以下例外:
org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException: javax.xml.bind.UnmarshalException - with linked exception: [com.sun.istack.internal.SAXParseException2; columnNumber: 0 unexpected element ... Expected elements are
这是因为我的代码试图像这样处理JSON响应对象(带有一些'root'元素):
{ "response": { "error_code": "02", "message": "Param not valid", "field_name": "title" } }
谢谢
从您发布的代码段中
Response Response=responseWs.ReadEntity(
我建议您为实体对象使用其他名称。response
类也由jaxrs框架本身使用。
我假设您正在使用ResteasyClient
调用这个(外部)服务来接收JSON。如果了解到来自该服务的响应是在JSON中,那么您可以使用JSON(jackson)编组器/反编组器而不是JAXB。假设您的类路径上已经有“resteasy-client”依赖项可用。此依赖项的maven形式如下所示:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.19.Final</version>
</dependency>
ExternalServiceResponse
Get
请求时,显式指定响应介质类型Response response = target.request(MediaType.APPLICATION_JSON).get();
ExternalServiceResponse result = response.readEntity(ExternalServiceResponse.class)
public class ExternalServiceResponse implements Serializeable {
private String error_code;
private String message;
private String field_name;
public String getError_code() {
return error_code;
}
public void setError_code(String error_code) {
this.error_code = error_code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getField_name() {
return field_name;
}
public void setField_name(String field_name) {
this.field_name = field_name;
}
}
我在返回带有指定对象根名的对象列表时遇到了一些麻烦。我试过几种不同的方法。我确信我正在做一件像往常一样难以置信的愚蠢的事情,我很感激任何帮助。 这是我的东西
问题内容: 我有一个页面作为HtmlUnit中的UnexpectedPage返回,响应为JSON。我可以使用HTMLUnit进行解析还是需要一个额外的库? 问题答案: HtmlUnit不支持它。它最多可以执行JS函数。您需要事先检查返回的响应是否匹配,然后使用合适的工具进行解析。Google Gson 在此方面很有用。 如果JSON结构是事先已知的,则您甚至可以使用Gson将其转换为完全有价值的J
问题内容: 对不起,我的英语不好 :) 我在iOS应用程序的Swift中通过Alamofire解析JSON响应时遇到问题。我编写了一个函数来返回JSON响应字符串。请求和响应处理我做Alamofire和JSON处理我做SwiftyJSON。首先,我声明一个名为 jsonString的变量 ,其值为 test 。然后,我向REST服务发出请求,并通过单击按钮获得JSON响应。我想使用函数 ping(
问题内容: 我在弄清楚如何从jQuery $ .post()请求中正确读取JSON响应时遇到了麻烦。 在下面的jQuery代码中,我根据对应的“ color_entry_id”(用作键)从DOM中的元素填充字符串的关联数组: 然后,我发出POST请求,发送“ image_links”数组: 另外,如上所示,我尝试遍历响应数组并输出要成为字符串的每个项目,但是我只得到“ [object Object
对于页面的元素,在DOM编程中可以通过各种查询、修改手段进行管理,非常麻烦。jQuery提供了一整套的方法来处理页面的元素。包括元素的内容、复制、移动和替换等。本节将介绍一些常用的内容。 1.直接获取、编辑内容。 在jQuery中,主要是通过html()和text()两个方法来获取和编辑页面的内容。其中html()相当于获取节点的innerHTML属性,添加参数html(text),则为设置inn
我的API有很多db调用,因此我需要使用或处理几乎每个数据库调用,但是有没有比这更好的方法 每次我要从数据库中检索用户行时?