android中json使用,安卓开发解析json

发布时间:2022-11-24

本文目录一览:

  1. android json解析三种方式哪种效率最高
  2. Android开发中应该使用哪一种主流json框架
  3. Android 中解析 JSON
  4. 请教高手android中使用JSON的问题

android json解析三种方式哪种效率最高

用org.json以及谷歌提供gson来解析json数据的方式更好一些。 安卓下通常采用以下几种方式解析json数据:

  1. org.json包(已经集成到android.jar中了)
  2. google提供的gson库
  3. 阿里巴巴的fastjson库
  4. json-lib 以Google出品的Gson为例,具体步骤为:
  5. 首先,从 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();
}
  1. 使用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());
}
  1. 如果要处理的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 数据。这些类是 JSONArrayJSONObjectJSONStringerJSONTokenizer 为了解析 JSON 对象,须先创建一个 JSONObject 类的对象,需要传入需解析的字符串 JSONObject root = new JSONObject(candyJson); 然后根据 JSONObject 对象提供方法以及数据类型解析对应 json 数据。下表展示一些 JSONObject 提供的方法 示例:

请教高手android中使用JSON的问题

使用json-lib来进行解析,需要引入第三方的包。 尽量不要直接通信JSON,收发字符串之后各自解析。另外客户端服务端的字符编码要统一,一般UTF8。