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自带解析

 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解析

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

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>。

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使用起来还是很方便的。

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

(0)

相关推荐

  • Android实现读写JSON数据的方法

    本文实例讲述了Android实现读写JSON数据的方法.分享给大家供大家参考.具体如下: 1. 解析JSON: package de.vogella.android.twitter.json; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntit

  • android 解析json数据格式的方法

    json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: 复制代码 代码如下: {"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}} 分析代码如下: 复制代码 代

  • Android中的JSON详细总结

    1.JSON(JavaScript ObjectNotation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org 2.JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Hash table.Disctio

  • Android访问php取回json数据实例

    php代码 复制代码 代码如下: $array = array( 'username'=>'杨铸', 'password'=>'123456', 'user_id'=>1 ); echo json_encode($array); java代码 复制代码 代码如下: private void startUrlCheck(String username,String password) { HttpClient client = new DefaultHttpClient(); String

  • Android中生成、使用Json数据实例

    1.Json的制作 复制代码 代码如下: package com.example.usingjson2;    import org.json.JSONException;  import org.json.JSONObject;    import android.os.Bundle;  import android.app.Activity;    public class MainActivity extends Activity {        @Override      prote

  • Android中Json数据读取与创建的方法

    首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写. 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Hash table.Disctiona

  • Android 解析JSON对象及实例说明

    JSON是一种轻量级的对象,数据体积小,方便传输,易于解析! 首先新建一个类工具类JsonUtil,用于获取请求返回的数据 复制代码 代码如下: public class JsonUtil { private static final String TAG = "JSONUTIL"; public static JSONObject getJSON(String url) throws Exception {  return new JSONObject(getRequest(url)

  • Android App数据格式Json解析方法和常见问题

    (1).解析Object之一: 复制代码 代码如下: {"url":"http://www.cnblogs.com/qianxudetianxia"} 解析方法: 复制代码 代码如下: JSONObject demoJson = new JSONObject(jsonString);String url = demoJson.getString("url"); (2).解析Object之二: 复制代码 代码如下: {"name"

  • Android webview与js交换JSON对象数据示例

    最近几个项目的测试结果,Android无法主动通过调用 webview.loadUrl("javascript:"+callbackFunction+"('"+data+"')"); 这种方式将jsonobject类型的data传给js,因为js那边得到就是一个string的对象. 与此同时,js主动调用android的对象方式,android也无法返回给js一个jsonobject,需要js做一下转换,例如: Android 代码: 复制代码

  • Android网络编程之获取网络上的Json数据实例

    为要获取网络上的Json所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean 复制代码 代码如下: package com.jph.sj.model;   import java.util.Date;   /**  * 新闻实体类  * @author jph  * Date:2014.09.26  */ public class News {     private Integer id;     private S

随机推荐