我想从java客户端中提取从java web服务返回的字符串。从java Web服务返回的字符串如下:
{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}
哪个是Json字符串格式。我编写了客户端代码来提取此字符串,如下所示:
public static void main(String[] args) throws Exception{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost("http://localhost:8080/JsonWebService/services/JsonWebService/getData");
post.setHeader("Content-Type", "application/xml");
HttpResponse httpres = httpClient.execute(post);
HttpEntity entity = httpres.getEntity();
String json = EntityUtils.toString(entity).toString();
System.out.println("json:" + json);
}
我正在控制台上为json打印以下内容:
json:<ns:getDataResponse xmlns:ns="http://ws.jsonweb.com"><ns:return>{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}</ns:return></ns:getDataResponse>
请告诉我如何提取字符串
{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}
这是实际的消息。提前谢谢......
答案 0 :(得分:1)
好吧,响应是 xml 的类型, json 位于<ns:return>
节点,所以我建议您可以输入xml结果的深度,只需从<ns:return>
节点获取json。
注意:强> 我建议您尝试指定您需要响应为 JSON类型:
post.setHeader("Content-type", "application/json");
post.setHeader("Accept", "application/json");
答案 1 :(得分:0)
有一种肮脏的方法(在xml解析方式旁边)
如果你每次都得到相同的XML,
你可以使用split()
String parts[] = json.split("<ns:return>");
parts = parts[1].split("</ns:return>");
String jsonPart = parts[0];
现在jsonPart
应仅包含{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}