zoukankan      html  css  js  c++  java
  • Android 解析JSON数组

    1:服务端是使用PHP,从数据库中查询出一个二维数组,然后调用系统函数以json格式返回给客户端。

    返回结果如下:http://192.168.0.116/server/selectTitle2json.php

    [{"title":"u5173u4e8e10u67089u65e5u5c40u957fu201c12366u5728u7ebfu201du7684u901au77e5"},{"title":"u5173u4e8e9u670825u65e5u5c40u957fu201c12366u5728u7ebfu201du7684u901au77e5"},{"title":"u5173u4e8eu7f51u4e0au529eu7a0eu7cfbu7edfu5c0fu5faeu4f01u4e1au514du7a0eu529fu80fdu5347u7ea7u7684u901au77e5"},{"title":"u5173u4e8eu7f51u7edcu53d1u7968u7cfbu7edfu4e34u65f6u6682u505cu7684u7d27u6025u901au77e5"},{"title":"u5173u4e8e9u67083u65e5u4e92u8054u7f51u201cu5728u7ebfu8bbfu8c08u201du7684u901au77e5"},{"title":"u5173u4e8e9u67084u65e5u5c40u957fu201c12366u5728u7ebfu201du7684u901au77e5"},{"title":"u5173u4e8eu542fu7528u8d27u7269u8fd0u8f93u4e1au589eu503cu7a0eu4e13u7528u53d1u7968u7f51u4e0au6284u62a5uff08u542bu673au52a8u8f66uff09u7cfbu7edfu7684u901au77e5"},{"title":"u5173u4e8eu7f51u4e0au529eu7a0eu7cfbu7edfu81f4u8425u6539u589eu7eb3u7a0eu4ebau7684u4e00u5c01u4fe1"},{"title":"u5173u4e8eu7f51u4e0au529eu7a0eu7cfbu7edfu8425u6539u589eu529fu80fdu5347u7ea7u7684u901au77e5"},{"title":"u5173u4e8e8u670828u65e5u5c40u957fu201c12366u5728u7ebfu201du7684u901au77e5"}]

    2:activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <Button 
            android:id="@+id/btn_get_titles"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Get Titles"/>
        
    <ListView 
               android:id="@+id/lv_show"
            android:layout_below="@id/btn_get_titles"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </RelativeLayout>

    3:MainActivity.java

    public class MainActivity extends Activity implements OnClickListener {
        private Button btnGetTitles=null;
        private ListView lvShow=null;
        private List<Object> titleList=null;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            initUI();
            
            btnGetTitles.setOnClickListener(this);
        }
    
        
        private void initUI(){
            btnGetTitles=(Button)findViewById(R.id.btn_get_titles);
            lvShow=(ListView)findViewById(R.id.lv_show);
        }
    
    
        @Override
        public void onClick(View arg0) {
            new Thread(new GetTitlesThread()).start();
        }
        
        Handler getTitlesHandler=new Handler(){
            public void handleMessage(Message msg){
                if(msg.what==100){
                    ArrayAdapter<Object> adapter=new ArrayAdapter<Object>(
                            MainActivity.this,
                            android.R.layout.simple_list_item_1,
                            titleList);
                    lvShow.setAdapter(adapter);
                }
            }
        };
        class GetTitlesThread implements Runnable{
            @Override
            public void run() {
                String url="http://www.zhihuiqd.com/wsht/server/selectTitle2json.php";
                StringBuilder builder=new StringBuilder();
                HttpClient client=new DefaultHttpClient();
                HttpGet get=new HttpGet(url);
                try{
                    HttpResponse response=client.execute(get);
                    
                    if(response.getStatusLine().getStatusCode()==200){
                        BufferedReader reader=new BufferedReader(
                                new InputStreamReader(response.getEntity().getContent()));
                        
                        for(String s=reader.readLine();s!=null;s=reader.readLine()){
                            builder.append(s);
                        }
                        
                        JSONArray json=new JSONArray(builder.toString());
                        int len=json.length();
                        String title="";
                        titleList=new ArrayList<Object>();
                        
                        for(int i=0;i<len;i++){
                            JSONObject temp=(JSONObject)json.get(i);
                            title=temp.getString("title");
                            titleList.add(title);
                        }
                        
                        getTitlesHandler.obtainMessage(100).sendToTarget();
                    }
                }catch(Exception e){
                    //
                }
            }
        }
    }

    4:最后不要忘记在AndroidManifest.xml文件中加入:

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

  • 相关阅读:
    Android开发必看知识
    Android 网络通信框架Volley(三)
    Android 网络通信框架Volley(二)
    Android 网络通信框架Volley(一)
    AtomicInteger 一个提供原子操作的Integer类
    Android中px dpi dip density densityDpi 的相关说明
    Android键盘映射
    四十一、Git简介
    四十、git config基本篇
    三十九、git add详解
  • 原文地址:https://www.cnblogs.com/yshyee/p/3367545.html
Copyright © 2011-2022 走看看