2014-12-12 2 views
1

Мне нужно написать атрибут документа JSON, и этот атрибут является URLправильно писать в URL в формате JSON с Java

Это мой код:

String url = "http://localhost:1028/accumulate"; 
JSONObject cabecera = new JSONObject(); 
cabecera.put("reference", url); 

Но когда я создать JSON этот атрибут объявления является writted таким образом:

"reference":"http:\/\/localhost:1028\/accumulate", 

Таким образом, служба, которая принимает строку JSON, он посылает мне ошибку:

<subscribeContextResponse> 
    <subscribeError> 
    <errorCode> 
     <code>400</code> 
     <reasonPhrase>Bad Request</reasonPhrase> 
     <details>JSON Parse Error: <unspecified file>(1): invalid escape sequence</details> 
    </errorCode> 
    </subscribeError> 
</subscribeContextResponse> 

Каков правильный способ написания URL-адреса?

Заранее спасибо

+0

Как вы _create JSON_? –

ответ

5

But when I create the JSON,this attibute is writted in this way:

"reference":"http:\/\/localhost:1028\/accumulate",

Это хорошо, что обратные косые безвредны, все, что вы используете для сериализации в JSON просто быть немного гипер с его побегами. Строка, представленная выше, не содержит обратных косых черт вообще, просто слэши. \/ внутри строки JSON точно так же, как и /, как мы можем видеть из подсвеченного правила из http://json.org:

enter image description here

(«солидус» это причудливый термин для слэш)

+0

Тогда, где проблема в этом атрибуте? Если служба ожидает строку, и я посылаю строку хорошо сформированной, возможно ли, что проблема в моем JSON другая? – jjmartinez

+1

@jjmartinez нет ничего плохого в вашем JSON, проблема в том, что код на другом конце, который пытается его разобрать, не соответствует спецификации JSON. –

+1

@jjmartinez: Возможно, что все, что вы используете для получения/проверки/разбора JSON, сломано и не понимает escape-последовательность '\ /'. Если это так, я бы переключился на то, что не сломалось. Последовательность отображается как действительная как на JSON.org, так и [в RFC] (http://www.ietf.org/rfc/rfc4627.txt). –

Смежные вопросы