2012-01-20 4 views
6

URL을 일반적으로 http : \ somewebsite.com \ somepage.asp 형식으로 추가해야합니다. 나는 위의 URL 문자열을 생성하고 여분을 추가하는 것JSON 객체에 URL 문자열을 추가하는 방법

json.put("url",urlstring); 

사용하여 JSON 객체 JSON

에 추가 "\"내가 출력을 검사 할 때 그것은 http:\\\\somewebsite.com\\somepage.asp

처럼 URL을 http://somewebsite.com/somepage.asp으로 지정합니다. json 출력은 http:\/\/somewebsite.com\/somepage.asp

URL을 그대로 가져올 수 있습니까?

감사합니다.

+3

왜 URL에 백 슬래시를 사용하고 있습니까? URL은 슬래시 만 사용합니다. 첫 번째 URL은 구문 상 올바르지 않습니다. 'http : // somewebsite.com/somepage.asp'와 같은 형식이어야합니다. – Jonathan

+2

JSON 문자열이 serializer에서 생성 된 것을보고 있다면 - 슬래시를 이스케이프 처리하는 것이 좋습니다. JSON 문자열이 deserialize 될 때 슬래시는 이스케이프 처리되지 않습니다. – zysoft

답변

6

JSON 라이브러리는 자동으로 슬래시와 같은 문자를 이스케이프 처리합니다. 수신 측에서는 replace()과 같은 함수를 사용하여 해당 백 슬래시를 제거해야합니다.

string receivedUrlString = "http:\/\/somewebsite.com\/somepage.asp";<br /> 
string cleanedUrlString = receivedUrlString.replace('\', ''); 

cleanedUrlString"http://somewebsite.com/somepage.asp"해야한다 :

다음은 예입니다.

희망이 도움이됩니다.

참조 : http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace(char,%20char

3

Tichodroma 님의 답변이 그것을 냈습니다. 유효한 URL을 저장하여 "문제"를 해결할 수 있습니다. 또한


는 JSON 형식 문자열에 슬래시 번째 백 슬래쉬 것을 요구한다. 두 번째 백 슬래시가 생략되면 잘못된 JSON이 반환됩니다. http://www.json.org

더블 백 슬래시가 실제로 문제를 발생 시킨다는 사실은 실제로 파일을 읽는 소프트웨어가 손상되었다는 것을 의미합니다. 올바르게 작성된 JSON 구문 분석기는 문자열을 자동으로 탈출합니다. 위에 링크 된 사이트는 여러 언어로 작성된 많은 JSON 파서 라이브러리를 나열합니다. JSON 구문 분석 코드를 직접 작성하는 대신이 중 하나를 사용해야합니다.

관련 문제