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"/>

  • 相关阅读:
    斐波那契数列 的两种实现方式(Java)
    单链表反转
    单链表合并
    两个有序list合并
    list去重 转载
    RemoveAll 要重写equals方法
    Java for LeetCode 138 Copy List with Random Pointer
    Java for LeetCode 137 Single Number II
    Java for LeetCode 136 Single Number
    Java for LeetCode 135 Candy
  • 原文地址:https://www.cnblogs.com/yshyee/p/3367545.html
Copyright © 2011-2022 走看看