网络获取Json文件解析范例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kd953163660/article/details/51419180

我们来展示一个简单的网络获取json文件,并且将其解析并更新至listview的范例

首先,我们读取到网络的json数据,这里我们从聚合数据获取相关的json串

http://japi.juhe.cn/joke/content/list.from?key=abab5d1154ba71eb9dd88c3a03838de1&page=2&pagesize=10&sort=asc&time=1418745237

接下来,我们使用HiJson编辑器将其格式化,分层数据,建立vo包和相关实体类

建类和布局的编写,这里就不多说了,我们来说一下代码块

public class MainActivity extends Activity {

    private ListView lv_main;
    private MyAdapter adapter;
    private List<Data> data;

    //我们用线程机制来发送更新listview
    Handler handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
            adapter.addRest(data);
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lv_main = (ListView) findViewById(R.id.lv_main);
        adapter=new MyAdapter(MainActivity.this);
        lv_main.setAdapter(adapter);
        getJson();

    }

//这里我们定义一个解析json的方法
    private void getJson() {
    //得到json文件获取的路径
        final String path="http://japi.juhe.cn/joke/content/list.from?key=abab5d1154ba71eb9dd88c3a03838de1&page=2&pagesize=10&sort=asc&time=1418745237";
//开启一个线程
        new Thread(){


            public void run() {
//建立client对象
                HttpClient client=new DefaultHttpClient();

                try {
                    HttpGet get=new HttpGet(path);
                    HttpResponse response=client.execute(get);
                    int statusCode = response.getStatusLine().getStatusCode();
                    if (statusCode==200) {
                        InputStream is=response.getEntity().getContent();
                        BufferedReader br=new BufferedReader(new InputStreamReader(is));
                        String str="";
                        String json="";
                        while ((str=br.readLine())!=null) {
                            json+=str;
                        }
                        Gson gson=new Gson();
                        Type type=new TypeToken<Joke>(){}.getType();
                        Joke joke=gson.fromJson(json, type);
                        Result result=joke.result;
                        data = result.data;

                        System.out.println(data);

                        handler.sendEmptyMessage(0x123);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            };
        }.start();
    }

}

以上就是简单的解析网络获取的json串数据的方法,具体的解题方法,看获取到的数据的具体情况而定,还有 ,在做这类方法时,要记得设置

 <uses-permission android:name="android.permission.INTERNET"/>

权限哈

阅读更多

没有更多推荐了,返回首页