2011-09-07 2 views
3

Это период наблюдения предыдущего вопроса (Android: Json string with spaces gives "Unterminated object at" exception)Как сохранить котировки на строки из строковых ресурсов

Когда я получаю строку из файла ресурса он удаляет «если она не экранированы (\») находится там путь вокруг этого?

Например:

Java:

String jString = getResources().getString(R.string.event); 

Json:

<resources> 
    <string name="event"> 
     {"Array":[{"Name":"One two three"},{"Name":"Two"},{"Name":"Three"}]} 
    </string> 
</resources> 

jString имеет значение {Array: [{Name: Один два три}, {Имя: Два }, {Name: Three}]}, и я хочу, чтобы у него было следующее значение {"Array": [{"Name": "Two two three"}, {"Name": "Two"}, {"Name" :"Три"}]}.

+0

Вы сами ответили на вопрос: «Если это не экранировано (\»), есть ли способ обойти это? »В чем проблема? – Julian

+0

Проблема в том, что я получаю строку с сервера, который сериализует объект, и я не хочу писать свой собственный сериализатор.Я думаю, что это глупо, что он удаляет кавычки из строки, и я надеюсь, что там есть. –

+0

Когда вы собираете этот JSON-предмет? В (или раньше) компилируете? на самом деле не имеет смысла для меня в данный момент. – Julian

ответ

3

Вы можете разместить документ JSON в res/raw/, а затем использовать openRawResource(int), чтобы получить InputStream, из которого вы можете прочитать JSON.

Но в зависимости от данных, я бы предпочел сохранить его в <string-array> или что-то в этом роде.

+0

Есть ли способ сделать [ButterKnife] (http://jakewharton.github.io/butterknife/) привязать необработанный ресурс? Написание [10 + строк кода] (http://stackoverflow.com/a/6349913/5922757) просто для чтения строки кажется немного переборщиком. – Jezor

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