网络获取Json文件解析范例

来源:互联网 发布:java 两个数组值交换 编辑:程序博客网 时间:2024/06/05 18:44

我们来展示一个简单的网络获取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"/>

权限哈

0 0
原创粉丝点击