1、json数据
[{"id":"1","color":"red","name":"Android"},
{"id":"2","color":"yellow","name":"IOS"},
{"id":"3","color":"blck","name":"C++"},
{"id":"4","color":"red","name":".NET"},
{"id":"5","color":"back","name":"JAVA"}]
2、activity_main布局
<Button
android:id="@+id/json"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="解析Json数据" />
3、MainActivity.java
使用okhttp必须导入架包:http://download.csdn.net/detail/qq_26650589/9811409
Button button=(Button) findViewById(R.id.json);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//使用okhttp获取数据
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient okHttpClient=new OkHttpClient();
Request request=new Request.Builder().url("http://10.0.2.2/date.json").build();
try {
Response response=okHttpClient.newCall(request).execute();
//得到数据date
final String date=response.body().string();
//将数据传入解析方法
JsonJX(date);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
});
}
private void JsonJX(String date) {
JSONArray jsonArray;
try {
jsonArray = new JSONArray(date);
Log.i("TAG", "------2--------"+jsonArray);
for (int i = 0; i < jsonArray.length(); i++) {
//解析json
JSONObject jsonObject = jsonArray.getJSONObject(i);
final String id = jsonObject.getString("id");
String color = jsonObject.getString("color");
String name = jsonObject.getString("name");
//打印日志
Log.i("TAG", "id:"+id+"name:"+name+"color"+color);
}
} catch (Exception e) {
e.printStackTrace();
Log.i("TAG", "--------"+e.getMessage());
}
4、添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
打印结果:
如果模拟器是4.0以下将解析失败,提示String无法换换JsonArray。连接:https://my.oschina.net/mstian/blog/185716