A. android 解析json用那個包裡面的方法比較好呢
android 解析json還有用Google出品的Gson比較好,具體步驟為:
1、首先,從 code.google.com/p/google-gson/downloads/list下載GsonAPI:
google-gson-1.7.1-release.zip 把gson-1.7.jar 到libs(項目根目錄新建一個libs文件夾)中。 可以使用以下兩種方法解析JSON數據,通過獲取JsonReader對象解析JSON數據。
代碼如下:
String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
try{
JsonReader reader = new JsonReader(new StringReader(jsonData));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equals("username")){
System.out.println(reader.nextString());
}
else if(tagName.equals("userId")){
System.out.println(reader.nextString());
}
}
reader.endObject();
}
reader.endArray();
}
catch(Exception e){
e.printStackTrace();
}
2、使用Gson對象獲取User對象數據進行相應的操作:
代碼如下:
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println(user.getUsername());
System.out.println(user.getUserId());
}
3、如果要處理的JSON字元串只包含一個JSON對象,則可以直接使用fromJson獲取一個User對象:
代碼如下:
String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println(user.getUsername());
System.out.println(user.getUserId());
B. Android開發中應該使用哪一種主流json框架
Gson、FastJson、Jackson每種都有自己的優劣勢。
Gson、FastJson、Jackson綜合對比
三種框架在實現上都使用了反射機制;
三種框架目前仍然在維護,所以從這一點來講,使用任何一個框架都是靠譜的,因為有人在維護,反饋問題可以改,遇到問題也可以問;
三種框架FastJson的包最小(為了方便對比大小,均是對jar包做的統計),只有196K,其次是Gson的227K,Jackson會大很多,超過了1M;
三種框架在1000倍數據量級以內效率都很高、佔用內存也低,效率最高的是FastJson,內存佔用都差不多;1000倍數據量級以上內存佔用會很大,並且平均耗時會超過1S,FastJson表現中規中矩;
json解析、轉換是一件很耗CPU的工作;
三種框架在bean轉換為json時都有很好的易用性,但在json解析的實現上,FastJson使用起來最簡單,其次是Gson;
FastJson對bean有要求,必須要有默認的構造函數,如果bean類沒有默認的構造函數並且是無法修改的(比如拿不到源碼),相比於另外兩個框架會有弱勢。
C. 適用於android的優秀的json解析庫有哪些
開始項目中使用的是fastjson,而且作者也說比gson快6倍,甚至嘲諷gson的g代表了「龜速」的意思,可是我自己的簡單測試是,比較簡陋的測試,一個10萬條數據的json文件,gson比fastjson快一些,快了大概80%的樣子。雖然測試可能不科學,但數據確實是我們項目中的實際數據,所以……
另外,也許是我使用真的有問題?使用的新版本的fastjson性能反而比舊的要低很多(1.2.7,1.1.44-android,1.1.33-android裡面,1.1.33反而是最快的)。
然而,最終我選擇了logan square,它的速度比fastjson快了2-3倍(自測),嗯,推薦Android開發者們使用Logan Square。
D. android 上拉載入的json數據怎麼處理
可以用第三方框架FastJson,直接將Json反射成類對象,只要按照Json的格式定義類就可以了,json的格式可以在線格式化下看的清晰點,關於框架可以網上下載很容易用的。
E. android怎麼讀取外部json文件
java">比如說讀取sd卡里的
privatestaticStringSDCardPATH=Environment.getExternalStorageDirectory()+"/";
/**
*讀取文本文件
*
*@paramfilePath
*@return
*/
(StringfilePath){
StringBuildersb=newStringBuilder();
try{
Filefile=newFile(SDCardPATH+filePath);
InputStreamin=null;
in=newFileInputStream(file);
inttempbyte;
while((tempbyte=in.read())!=-1){
sb.append((char)tempbyte);
}
in.close();
}catch(Exceptione){
e.printStackTrace();
}
returnsb.toString();
}
然後你就可以進行你的解析json了。
F. Android開發中應該使用哪一種主流json框架
Android開發中應該使用的主流json框架有三種,分別是gson、fastjson、jackson這三種。
各自的區別:
gson:谷歌開發的gson很受國內外人士常使用,不過使用率低於fastjson,耗費內存多。
fastjson:框架的fastjson是最小的,屬於老牌並且國內開發者經常使用,fastjson必須有默認的構造函數。
jackson:jackson屬於小眾開發者使用的,jackson的框架包是最大的。
各自的共同點:
在bean轉換為json時都有很好的轉換性。
效率都很高、佔用內存也低,但是必須在1000倍數據量級以內的前提下才能實現。
三者都使用了反射機制。