加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JsonArray与JsonObject的区别与解析

发布时间:2020-12-16 19:14:01 所属栏目:百科 来源:网络整理
导读:JsonArray与JsonObject的区别与解析 JsonArray 与 JsonObject 的区别: JsonArray 是以“ [] ”包裹起来的数组 (Array 数组 ) ,而 JsonObject 是“ {} ”包裹起来的对象( Object 对象); jsonArray 数组 数据1、{"datas":[{"id":254,"no":"1001","name":"

JsonArray与JsonObject的区别与解析

JsonArrayJsonObject的区别:

JsonArray是以“[]”包裹起来的数组(Array数组),而JsonObject是“{}”包裹起来的对象(Object对象);

jsonArray数组


数据1、{"datas":[{"id":254,"no":"1001","name":".欧阳兰兰","addr":"贵州贵阳","phone":"15264546655","em":"54545@qq.com"}],"flag":"1"}


jsonObject数组

数据2、{"datas":{"id":254,"phone":"15859977978"},"flag":"1"}

数据3、{"datas":{"id":254,"phone":"15859977978","list":[{"id":254,"em":"54545@qq.com"},"flag":"1"}//jsonObject中有嵌套JsonArray,这是用于真实数据中的多对多关系数组


从这几组数据中大家都可以看到,如果这是对于一个新手来说,还是有一小点点难度的,尤其是数据2和数据4,json数组之前的嵌套要如何解析呢,请看下文(均以json数据转换成list<Hash<String,String>> 为例)


方法一、 解析JsonArray数组,返回List HashMap<String,String> 数组

参数1、String rs,这个参数是指从数据库中获取的整条数据 如(
{"datas":[{"id":254,"flag":"1"})

参数2、String[] keyset 这个参数是关键字数组,如:datas数组中的关键字{"id","no","name","addr","phone","em"};


//将jsonarray数组转换成List数组
public static List<HashMap<String,String>> getJsonArrayToList(String rs,String[] keys) { // 转换成字符数组
try {
// String jsonAry = new JSONObject(rs).getString("keys");
JSONArray json = new JSONArray(rs);
List<HashMap<String,String>> infos = new ArrayList<HashMap<String,String>>() ;
for (int i = 0; i < json.length(); i++) {
JSONObject jsonObject = json.getJSONObject(i);
HashMap<String,String> map=new HashMap<String,String>();
for (int j = 0; j < keys.length; j++) {
map.put(keys[j],jsonObject.getString(keys[j]));
}
infos.add(map);
}
return infos;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}



方法二、 解析JsonObject数组,String> 数组


// jsonObject 转化成list<Hash<String,String>>
public static List<HashMap<String,String>> getJSONObjToList(String jstr,String key,
String keys[]) {
List<HashMap<String,String>> infos=new ArrayList<HashMap<String,String>>();
HashMap<String,String> info=new HashMap<String,String>();
try {
String jsonStringer = new JSONObject(jstr).getString(key);
for (int i = 0; i < keys.length; i++) {


String josn = new JSONObject(jsonStringer).getString(keys[i])
.toString();
info.put(keys[i],josn);
}
infos.add(info);
return infos;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

先用上面这个方法获取到datas的数据如{"datas":{"id":254,"flag":"1"},然后再通过下面的方法取出list的数据如:"list":[{"id":254,"em":"54545@qq.com"}]

注:re传入的值应该是list字符串,keys数组是list对应的关键字如{“id”,em}


//将jsonarray数组转换成List数组
public static List<HashMap<String,String>> getJsonObjToList(String rs,jsonObject.getString(keys[j]));
}
infos.add(map);
}
return infos;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

初学的经验,送给初学的你。祝你学有所成。。。。。。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读