jsonarray 哪个性能好

如题所述

  用org.json以及谷歌提供gson来解析json数据的方式更好一些。
  安卓下通常采用以下几种方式解析json数据:
  1、org.json包(已经集成到android.jar中了)
  2、google提供的gson库
  3、阿里巴巴的fastjson库
  4、json-lib
  以Google出品的Gson为例,具体步骤为:
  1、首先,从 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();
  }
  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());
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-28
  1.java中所有的对象都是object子类,数组也是2.array在json中使用[]3.一般不判断属性是什么,都是先定义好,然后直接使用object或者array4.如果有不同情况,可以添加2个属性,一个object,另一个array本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网