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
网友评论