美文网首页
Android解析json数据,返回数组,可扩展为获取网络jso

Android解析json数据,返回数组,可扩展为获取网络jso

作者: 潇洒的夏夏 | 来源:发表于2019-06-22 21:31 被阅读0次

    1.解析json数据并返回数组的形式,设置到列表

    Json数据:
    
    [{"text":"张三"},{"text":"李四"}]
    
    解析成数组:
    
    String a[]={张三,李四}
    

    2.新建一个项目,xml布局为:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">
    
        <ListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/lv_id">
        </ListView>
    </LinearLayout>
    

    3.实现的代码如下:

    import android.app.*;
    import android.os.*;
    import android.widget.*;
    import org.json.*;
    
    public class MainActivity extends Activity {
       
        //解析json数据存成数组:[{"text":"张三"},{"text":"李四"}]
        
        private String json="[{\"text\":\"张三\"},{\"text\":\"李四\"}]";
        private ListView mListView;
        //字符串组合
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            //找到listview 组件
            mListView = (ListView) findViewById(R.id.lv_id);
    
            /**
             * 通过ArrayAdapter 将数据和布局联系起来
             * 参数1 当前上下文环境
             * 参数2 当前引用的布局 一般系统默认
             * 参数3 当前绑定的数据
             * */
            ArrayAdapter<String> array = new ArrayAdapter<String>(
                this,android.R.layout.simple_list_item_1,jsonToArray(json));
    
            //将数据和布局 显示到列表
            mListView.setAdapter(array);
        }
        
        
        public String[] jsonToArray(String json) {
            try {
                JSONArray jsonArray = new JSONArray(json);
    
                String[] strings = new String[jsonArray.length()];
    
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    strings[i] = jsonObject.getString("text");
                }
    
                return strings;
            } catch (JSONException e) {
                e.printStackTrace();
                return null;
            }
        }
        
    }
    
    Android解析json数据,返回数组,可扩展为获取网络json数据设置到ListView

    相关文章

      网友评论

          本文标题:Android解析json数据,返回数组,可扩展为获取网络jso

          本文链接:https://www.haomeiwen.com/subject/roxbqctx.html