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

2019-06-22  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读