2014-12-17 1 views
0

Java 클라이언트에서 java 웹 서비스에서 반환 된 문자열을 추출하려고합니다. java 웹 서비스에서 반환 된 문자열은 다음과 같습니다.java 클라이언트의 http 응답에서 문자열 추출

{"Name":"Raj Johri","Email":"[email protected]","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":"[email protected]","status":true}</ns:return></ns:getDataResponse> 

방법 문자열

{"Name":"Raj Johri","Email":"[email protected]","status":true} 
을 추출하는 방법을 가르쳐주세요 다음과 같이 나는이 문자열을 추출하는 클라이언트 코드를 작성했습니다

실제 메시지입니다. 미리 감사드립니다 ...

답변

0

이 작업을 수행하는 더러운 방법이있다 (는 XML 파싱 방법 옆) 같은 XML 때마다 얻는 경우, 당신은 지금 01 split()

String parts[] = json.split("<ns:return>"); 
parts = parts[1].split("</ns:return>"); 
String jsonPart = parts[0]; 

을 사용할 수 있습니다에만 포함되어야 함 {"Name":"Raj Johri","Email":"[email protected]","status":true}

+0

고마워, 아무리해도 그 더러운 방법은 나에게 잘 작동한다 ... –

1

음은 응 답은 XML의 유형으로, 그리고 당신의 JSON<ns:return>노드에, 그래서 당신이 XML 결과의 깊이를 입력하고 간단하게 얻을 제안 노드 <ns:return>의 json

참고 : 난 당신이 JSON 형식 같은 응답을 필요로 지정하려고 할 제안 :

post.setHeader("Content-type", "application/json"); 
post.setHeader("Accept", "application/json"); 
+0

응답 해 주셔서 감사합니다. 나는 그것을 시도했지만 exception xml : lang = "en-US"> com.ctc.wstx.exc.WstxEOFException을 준다. –