android解析json数据显示

Json数据

复制代码 代码如下:

[{"code":"110000","sheng":"11","di":"00","xian":"00","name":"北京市","level":1},{"code":"659004","sheng":"65","di":"90","xian":"04","name":"五家渠市","level":3},{"code":"710000","sheng":"71","di":"00","xian":"00","name":"台湾省","level":1},{"code":"810000","sheng":"81","di":"00","xian":"00","name":"香港特别行政区","level":1},{"code":"820000","sheng":"82","di":"00","xian":"00","name":"澳门特别行政区","level":1}]

这里附上一个检查json数据格式是否正确的网站http://www.json.cn/

三种解析方式android自带解析,Gson解析,FastJson解析

1、android自带解析

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
json_btn.setOnClickListener( new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        String s = getString();
        Log.d( "txt" ,s);
        List<City> list = new ArrayList<City>();
        try {
          JSONArray obj = new JSONArray(s);
          for ( int i= 0 ;i<obj.length();i++){
            JSONObject jsonobj = (JSONObject)obj.get(i);
            City city = new City();
            city.setCode(jsonobj.getString( "code" ));
            city.setSheng(jsonobj.optString( "sheng" ));
            city.setDi(jsonobj.optString( "di" ));
            city.setXian(jsonobj.optString( "xian" ));
            city.setName(jsonobj.optString( "name" ));
            city.setLevel(jsonobj.optInt( "level" ));
            Log.d( "txt" ,city.toString());
            textView.append(city.toString());
          }
        } catch (JSONException e) {
          e.printStackTrace();
        }
 
      }
    });

先获取JSON数组,在解析JsonObject。

2、Gson解析

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Gson_btn.setOnClickListener( new View.OnClickListener() {
       @Override
       public void onClick(View v) {
         String s = getString();
         JsonParser parser = new JsonParser();
         JsonArray jsonArray = parser.parse(s).getAsJsonArray();
         Gson gson = new Gson();
         for (JsonElement obj:jsonArray){
           City city = gson.fromJson(obj,City. class );
           Log.d( "txt" , city.toString());
           textView.append(city.toString());
         }
 
 
       }
     });

先获取Json数组,再解析jsonObject。

3、FastJson

?
1
2
3
4
5
6
7
8
9
10
11
12
13
fastjson_btn.setOnClickListener( new View.OnClickListener() {
       @Override
       public void onClick(View v) {
         String s = getString();
         Log.d( "txt" ,s);
         List<City> lists = JSON.parseArray(s,City. class );
 
         for (City city:lists){
           textView.append(city.toString());
           Log.d( "txt" ,city.toString());
         }
       }
     });

 直接获取JsonArray解析List<Bean>。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
 
   public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
 
   public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
 
   public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
 
   public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
 
   public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
 
   public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本

public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)

三种解析方法,个人感觉fastjson使用起来还是很方便的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

原文链接:http://www.cnblogs.com/yrstudy/p/6596540.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值