jsonobject如何获取key和value?jsonobject添加元素怎么操作?

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工具网。

推荐阅读:

面试java学什么?面试java有哪些基础题?

java注册功能如何编写?java注册功能编写实操

spring的作用有哪些?spring原理是什么?