jsonarray转换成list顺序错了怎么回事?

在实际工作中,我们需要将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. 进行转换

Listusers= jsonArray.toJavaList(User.class)

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

推荐阅读:

fastjson怎么解析数组?实例分享

java架构师有哪些面试题?java架构师面试题及答案

java如何写一个http接口?实例详解