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倍数据量级以内的前提下才能实现。
三者都使用了反射机制。