Android解析帶轉義符的JSON

最近幾天寫Android寫的有點兒癲瘋狀態,下午在獲取遠程服務器的JSON字符串兒的時候遇到了個問題,就是從服務器返回的JSON帶了轉義符,也就是反斜槓,然後JSON就死活解析不了了,大致上返回來的是這個樣子的:


然後再Android中就直接原封不動的賦值給了一個字符串兒變量,然後再用JSON解析的時候就錯了,解析不了,因爲反斜槓不光反了斜槓,還特別反人類。。。但是,如果把頁面返回的結果整個兒拷貝出來,然後賦值給一個字符串兒變量,解析就是完全正常的,所以百思不得其解,羣內一個兄弟說,你這麼着吧,把反斜槓替換爲空,然後掐頭去尾幹掉兩頭兒的引號,再重新賦值回去,應該就可以了。不過在此期間就是還犯了一個低級錯誤,就是直接在原先的字符串兒上操作了,這個錯誤實在低級到無法忍受了,因爲這幾天是python和java一塊兒寫,我還美滋滋的覺得我還能記得java的字符串兒不同於python是可以原地操作的,就這我還巴巴的美呢!!結果被這哥們兒給鄙視了一下,說你來個中間變量啊,於是問題圓滿解決。

不過寫博客不上代碼也實在是無法忍受,代碼簡單,直接就來個簡單的處理代碼吧:

// 從服務器端獲取Json字符串
String backlogJsonStr = HttpUtils.getByHttpClient(Backlog.this,params[0]);
// 聲明中間變量進行處理
String backlogJsonStrTmp = backlogJsonStr.replace("\\", "");
// 處理完成後賦值回去
backlogJsonStr = backlogJsonStrTmp.substring(1,backlogJsonStrTmp.length() - 1);
// 這句代碼就是爲了檢驗效果的
System.out.println("result----------" + backlogJsonStr);
// 這裏用的是Google的GSON
Gson gson = new Gson();
// 這個Json是一個Array類型,即包含多個JSONObject對象,回頭我會抽時間專門寫個博客來記錄這塊兒的東西
List<BacklogEntity> tmpBacklogList = gson.fromJson(backlogJsonStr, new TypeToken<List<BacklogEntity>>() {}.getType());
//接下來你可以做其他你想要做的操作


2013年11月22日,Eric.Tang 記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章