本文目录一览:
android json解析三种方式哪种效率最高
用org.json以及谷歌提供gson来解析json数据的方式更好一些。 安卓下通常采用以下几种方式解析json数据:
- org.json包(已经集成到android.jar中了)
- google提供的gson库
- 阿里巴巴的fastjson库
- json-lib 以Google出品的Gson为例,具体步骤为:
- 首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI: google-gson-1.7.1-release.zip 把gson-1.7.jar copy到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();
}
- 使用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());
}
- 如果要处理的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());
Android开发中应该使用哪一种主流json框架
Android开发中应该使用的主流json框架有三种,分别是gson、fastjson、jackson这三种。 各自的区别:
- gson:谷歌开发的gson很受国内外人士常使用,不过使用率低于fastjson,耗费内存多。
- fastjson:框架的fastjson是最小的,属于老牌并且国内开发者经常使用,fastjson必须有默认的构造函数。
- jackson:jackson属于小众开发者使用的,jackson的框架包是最大的。
Android 中解析 JSON
JSON( JavaScript Object Notation ) 是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。 JSON 建构于两种结构:
- JSON 具有以下这些格式:
参考: Android 中 解析 JSON
Android 提供类四种不同的类来操作 JSON 数据。这些类是
JSONArray
、JSONObject
、JSONStringer
和JSONTokenizer
为了解析 JSON 对象,须先创建一个JSONObject
类的对象,需要传入需解析的字符串JSONObject root = new JSONObject(candyJson);
然后根据JSONObject
对象提供方法以及数据类型解析对应 json 数据。下表展示一些JSONObject
提供的方法 示例:
请教高手android中使用JSON的问题
使用json-lib来进行解析,需要引入第三方的包。 尽量不要直接通信JSON,收发字符串之后各自解析。另外客户端服务端的字符编码要统一,一般UTF8。