当前位置:首页 » 安卓系统 » android解析复杂json

android解析复杂json

发布时间: 2025-05-24 14:55:17

Ⅰ 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());

Ⅱ net.sf.json.JSONObject与Android自带的JSON解析类冲突怎么办

在Android中,由于类名相同,可能造成冲突,解决方案:

  1. 尽量使用同一个库下的JSON解析工具。

  2. 如果类型相同,但是包名不同,建议使用完整的包名+类名定义变量,例如java中,java.sql.Date和java.uitl.Date两个都是Date类,但是怎么区分呢,就可以通过包名+类名来区分:

    java.sql.Date date1 = new java.sql.Date();

    java uitl.Date date2 = new java.uitl.Date();

  3. JSONObject也一样,可以使用这种方式。

  4. Android中,json的解析,建议使用google提供的Gson这个开源库,json的解析或者对象与json转换,只需要一行代码。

    Gson gson = new Gson();

    gson.toJson(object); gson.fromJson(json.Object.class);

热点内容
考试答题系统源码 发布:2025-05-24 18:40:22 浏览:331
服务器ibm怎么重启 发布:2025-05-24 18:34:05 浏览:644
ie内核浏览器源码 发布:2025-05-24 18:29:08 浏览:620
java服务器代码 发布:2025-05-24 18:10:41 浏览:778
qt源码书吗 发布:2025-05-24 17:43:45 浏览:338
sql遍历表 发布:2025-05-24 17:38:51 浏览:450
x86x64体系探索及编程 发布:2025-05-24 17:15:06 浏览:130
局域网vpn服务器搭建 发布:2025-05-24 17:10:33 浏览:192
c语言算法复杂度 发布:2025-05-24 17:00:38 浏览:50
游戏脚本是什么 发布:2025-05-24 16:33:05 浏览:733