ANDROID 解析json数据

来源:互联网 发布:24u网络机柜 编辑:程序博客网 时间:2024/05/29 13:44
public class Myjson {public static String json1="{\"name\":\"ERIC\",\"age\":\"10\"}";public static String json2="[\"AAA\",\"BBB\",\"CCC\"]";public static String json3="[" +"{\"name\":\"aaa\",\"age\":\"10\"},"+"{\"name\":\"bbb\",\"age\":\"20\"},"+"{\"name\":\"ccc\",\"age\":\"30\"}"+"]";public static String json4="{"+"\"people\":"+"["+"{\"name\":\"a\",\"age\":\"1\"},"+"{\"name\":\"b\",\"age\":\"2\"},"+"{\"name\":\"c\",\"age\":\"3\"}"+"]"+"}";//json数据的格式真的好坑。。。。}

第一个json1是单纯的一个json对象,其中都是用key——value的方式存储的

第二个是一个数组

第三个是一个json对象的数组,就是数组里面的元素是一个一个json对象

第四个是一个json对象,people这个key对应的value值是一个数组。而这个数组里面的元素是一个一个json对象,

里面又有两个键值对,name和age。

下面看解析

要注意的是:无论什么时候,你要写解析json数据的代码的时候,首先要知道你将要解析的json数据是什么格式。

上解析:

public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//json1();//json2();//json3();//json4();}public void json1(){try {//new一个JSONObect对象JSONObject object=new JSONObject(Myjson.json1);String name=object.getString("name");int age=object.getInt("age");Log.i("json", name+age);   } catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void json2(){try {//数组是用JSONArray来接JSONArray array=new JSONArray(Myjson.json2);//通过下标来取数据for(int i=0;i<array.length();i++){String name=array.getString(i);Log.i("json", name);}} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void json3(){try {JSONArray array=new JSONArray(Myjson.json3);for(int i=0;i<array.length();i++){JSONObject object=array.getJSONObject(i);String name =object.getString("name");int age=object.getInt("age");Log.d("json", name+" "+age);}} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void json4(){try {JSONObject object=new JSONObject(Myjson.json4);JSONArray array=object.getJSONArray("people");for (int i = 0; i < array.length(); i++) {JSONObject ob=array.getJSONObject(i);String name=ob.getString("name");int age=ob.getInt("age");Log.d("json", name+" "+age);}} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

其实就是在用第一个和第二个解析方法来回嵌套,看看代码就可以了。



0 0
原创粉丝点击