JSONObject只是一种数据结构,可以理解为JSON格式的数据结构,JSONObject可以很方便的转换成字符串,也可以获取key和value,那jsonobject如何获取key和value?下面我们给大家讲解一下。
1、返回的json串:
{ "words_result_num": 5 , "words_result": { "公司代码": "RAWU" , "集装箱编号": "210063" , "校验码识别": "6" , "校验码计算": "6" , "其他": "22G1" } }
2、解析json,然后用Iterator迭代器遍历取值获取key和value,保存到封装的对象中:
KeyBean bean; private List list = new ArrayList < > (); // 解析数据 // result 是返回的json JSONObject jsonObject = null; try { jsonObject = new JSONObject(result); int words_result_num = jsonObject.getInt("words_result_num"); String words_result = jsonObject.getString("words_result"); jsonObject = new JSONObject(words_result); Iterator keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); String value = jsonObject.optString(key); bean = new KeyBean(); bean.setKey(key); bean.setValue(value); list.add(bean); } } catch (JSONException e) { e.printStackTrace(); }
3、最后在适配器中将数据显示在控件:
//将数据与界面进行绑定的操作 @Override public void onBindViewHolder(MyAdapter.ViewHolder viewHolder, final int position) { String key = list.get(position) .getKey(); String value = list.get(position) .getValue(); viewHolder.mTextView.setText(key + " :" + value); }
jsonobject添加元素怎么操作?
1.put(key,value)方法
put(key,value)其中key是键名,一般为字符串,用于调用后边的value,
value的值为String或JSONObject或JSONArray对象
2.get(key)
get(key),key为键名
getJSONObject(key),key为键名,返回JSONObject对象
getJSONArray(key),key为键名,返回JSONArray对象
实例如下
JSONObject student = new JSONObject(); /* * put(key,value)其中key是键名,一般为字符串,用于调用后边的value, * value的值为String或JSONObject或JSONArray对象 */ //put(key,value)添加String对象 student.put("name", "小明"); student.put("sno", "20160000"); JSONObject address = new JSONObject(); address.put("city", "石家庄市"); address.put("country", "长安区"); //put(key,value)添加JSONObject对象 student.put("address", address); JSONArray family = new JSONArray(); JSONObject father = new JSONObject(); father.put("name", "小明老爸"); father.put("age", 40); JSONObject mother = new JSONObject(); mother.put("name", "小明老妈"); mother.put("age", 41); /*add(value)是JSONArray对象添加元素方法 * value可以是String和JSONObject对象或JSONArray对象 */ family.add(father); family.add(mother); //put(key,value)添加JSONArray对象 student.put("family", family); /* * JSONObject对象调用元素用get(key)方法 * key为键名 */ System.out.println(student.get("name")); //输出结果 小明 System.out.println(student.get("sno")); //输出结果 20160000 /* * JSONObject对象(jsonObject)调用JSONObject对象元素(两种方法) * 1.jsonObject.getJSONObject(key),key为键名,返回JSONObject对象 * 2.(JSONObject)jsonObject.get(key),key为键名,获得JSONObject对象 * */ System.out.println(student.getJSONObject("address")); System.out.println((JSONObject) student.get("address")); //以上两种获取结果相同都是 //{"city":"石家庄市","country":"长安区"} /* * JSONObject对象(jsonObject)调用JSONArray对象元素(两种方法) * 1.getJSONArray(key),key是键名,返回JSONArray对象 * 2.(JSONArray)jsonArray.get(key),key是键名,获取JSONArray对象 */ System.out.println(student.getJSONArray("family")); System.out.println((JSONArray) student.get("family")); //以上两种获取结果相同都是 //[{"name":"小明老爸","age":40},{"name":"小明老妈","age":41}]
JSONObject其实就是JSON格式的数据结构,要想给jsonobject添加元素,我们可以使用put方法以及get方法这两种,最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: