在实际工作中,我们需要将jsonarray转换成list,但是往往在转换的时候,会发现顺序错了,这对于很多程序员都是很纳闷的,这到底是怎么回事?那么接下来,我们就来给大家讲解一下这方面的内容。
jsonarray转换成list顺序错了可能是使用的方法不对,我们可以这样将jsonarray转换成list:
1.首先有一个JSONArray对象,比如是jsonArray
JSONObject jsonObject1 = new JSONObject(); JSONObject1.put("username","zhangsan"); JSONObject jsonObject2 = new JSONObject(); JSONObject2.put("username","lisi"); JSONArray jsonArray = new JSONArray(); jsonArray.add(jsonObject1); jsonArray.add(jsonObject2);
2. 进行转换
List
mybatis的json对象映射
这个是针对mybatis中json对象映射成实体类的需求,mybatis通过(typeHandler = FastjsonTypeHandler.class)会把数据库类型是json的转换为List类型,但是本质上没有变。打印出来会是这样:
[{"username":"zhangsan"}]
但这个并不是我们想要的,我们想要的是这样的:
[User[username=zhangsan]]
所以我们要这样做:
String s = JSONArray.toJSONString(users); JSONArray jsonArray = JSONObject.parseArray(s); Listlist = jsonArray.toJavaList(User.class)
jsonArray如何转jsonObject?
JSONArray jsonarray = JSONArray.fromObject(actinfo); for (int i = 0; i < jsonarray.size(); i++) { JSONObject ob = (JSONObject) jsonarray.get(i); activityimg = ob.get("activityimg") .toString(); activityno = ob.get("activityno") .toString(); beans.setActivityimg(activityimg); beans.setActivityno(activityno); beans.setActivityid(bean.getId() .toString()); }
通过循环迭代就可以取出每个jsonarray的值转换成jsonobject。
JSONObject和JSONArray的区别是什么?
区别是JSONObject是一个对象,JSONArray是一个数组。
具体步骤如下:
1.JSONObject是一个{}包裹起来的一个对象(Object),而JSONArray则是[]包裹起来的一个数组(Array)。
2.JSONObjec 有键名,JSONArray没有。
3.所以解析的时候JSONObject是JSONObject.getString("msg"),而JSONArray是JSONArray.getString(5),其中这个数字5是位置。
jsonarray转换成list顺序错了可能就是因为转换步骤错误,所以大家在转换的时候,按照步骤来就可以了,最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: