2011-09-07 78 views
3

這是前一個問題的隨訪(Android: Json string with spaces gives "Unterminated object at" exception如何保持對字符串的報價從字符串資源

當我從一個資源文件中得到一個字符串則刪除「除非它被轉義(\」)是有繞過這個方法?

例如:

爪哇:

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

JSON:

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

的jstring具有{數組的值:[{名稱:一二三},{名稱:雙},{Name:Three}]}我希望它具有以下值{「Array」:[{「Name」:「One two three」},{「Name」:「Two」},{「Name」 :「三」}]}。

+0

你自己回答了這個問題:「除非它被轉義(\」)是否有解決方法?「那有什麼問題? – Julian

+0

問題是我從服務器獲取串行化對象的字符串,而我不想編寫我自己的序列化程序,我認爲它是一種愚蠢的做法,它將字符串中的引號刪除,並且希望能夠繞開它。 –

+0

什麼時候獲取這個JSON obect?在(或之前)編譯?目前對我來說並沒有什麼意義 – Julian

回答

3

您可以將JSON文檔放置在res/raw/中,然後使用openRawResource(int)以獲得可從中讀取JSON的InputStream

但根據數據,我寧願將它保存在<string-array>或類似的東西。

+0

有沒有什麼辦法讓[ButterKnife](http://jakewharton.github.io/butterknife/)綁定​​原始資源?編寫[10行代碼](http://stackoverflow.com/a/6349913/5922757)只是爲了閱讀一個字符串似乎有點矯枉過正。 – Jezor