irpas技术客

Android Studio JSON数据的初始化与解析访问 (JSON对象、JSON数组)_m0_49558200_android studio 解析json

网络 5840

????????Android Studio中有JSONObject和JSONArray两种数据结构。JSONObject是数据对象,是下图展示的类型。即一个{}中有若干个属性和属性对应的值。

JSONArray是json数组。为如下的形式。一个[]中有若干个JSON对象,可看做数组的元素。

一、Json的初始化

????????如果要初始化一个Json对象,逐次使用JSONObject.put()函数即可。函数的第一个参数为属性名,第二个参数为属性的值。一个Json对象中如有多个属性,对一个Json对象连续使用若干次JSONObject.put()函数即可。

JSONObject json1 = new JSONObject(); JSONObject json2 = new JSONObject(); try { json2.put("2", 2); json2.put("3", 3); json1.put("one", "xxx"); json1.put("two", "yyy"); json1.put("four", json2); } catch (JSONException e) { e.printStackTrace(); } Log.e("结果",json1.toString());//以字符串形式输出

????????执行上面的代码初始化JSON变量,可以发现JSON1的结果如下所示。json对象中某个元素对应的值可以是数字、字符串,也可以是JSON变量。

? ? ? ? ?JSON数组可以看做是一个数组,数组的元素是JSON对象。因此JSON数组的初始化方法类似。先用上述方法初始化每个json对象。再初始化一个新的JSON数组,用JSONArray.put()函数把前面初始化的JSON对象压入数组。

? ? ? ? 以下面的代码为例:

JSONObject json0 = new JSONObject();//json对象(数组元素) JSONObject json1 = new JSONObject();//json对象(数组元素) JSONArray json = new JSONArray();//json数组 try { json0.put("2", 2); json0.put("3", 3);//初始化元素0的json变量 json1.put("one", "xxx"); json1.put("two", "yyy"); json1.put("four", json0);//初始化元素1的json变量 json.put(json0);//元素0压入数组 json.put(json1);//元素1压入数组 } catch (JSONException e) { e.printStackTrace(); } Log.e("结果",json.toString());//字符串形式输出

? ? ? ? ?执行后JSON数组的值如下,有两个数组元素,每个数组元素都是JSON对象。

?二、JSON的访问

? ? ? ? JSON型是数据,无论是JSON对象还是JSON数组,都可以转化为字符串的形式。前面的输出均通过JsonObject/JsonArray.toString(),将JSON转化为了字符串。

? ? ? ? 如果想对JSON对象的某个确定的属性或元素进行访问,可以使用getJSONObject()和getString()函数实现。getJSONObject可以获取json对象中某个特定属性对应的json对象,参数为属性名。getString()可以获取json对象中某个特定属性对应的字符串,参数也为属性名。

? ? ? ? 在使用时要理清JSON对象的结构,确定需要提取的内容是数据元素还是JSON对象。以这个JSON对象为例。想要访问到属性为“four”对应的这个JSON对象中属性为”2“的这个元素,需要使用的代码如下,为JSONObject.getJSONObject("four").getString("2"):

try { Log.e("结果",json1.getJSONObject("four").getString("2").toString()); } catch (JSONException e) { e.printStackTrace(); }

????????对JSON数组进行访问的时候,可以先使用getJSONObject()函数提取某一个数组元素,括号中的参数为元素序号(数组下标),再使用上面访问JSON对象的方法。以下面这个json数组为例:

? ? ? ? 使用下面的代码对上面的json数组进行操作,会访问到(输出)第0个数组元素,即一个json对象。注意,下面的代码:json.getJSONObject(0)已经提取出json对象了,toString()只是用于将JSON对象转化为字符串,用于输出。

try { Log.e("结果",json.getJSONObject(0).toString()); } catch (JSONException e) { e.printStackTrace(); }//json.getJSONObject(0)以及提取出json对象了,toString()只是用于转化为字符串,用于输出

三、总结

????????1.常用的关于操作JSON数据类型的函数:put()、getJSONObject()、getString()。

? ? ? ??2.JSON数据类型通过上述方法进行提取后,数据类型全部变成了字符串,需要转化回原来的数据类型。

? ? ? ? 3.使用JSON型数据的各项操作时需要使用一系列异常处理,在Android Studio中均予以了提示,按照系统提示操作即可。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #Studio #解析json