开发者社区> 问答> 正文

对象的某个属性是arrayList该如何转成json又该怎么解析json呢

C/S传递对象时,如果对象的某个属性是arrayList该如何转成json,又该怎么解析json呢

展开
收起
蛮大人123 2016-02-29 17:58:14 3962 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你可以在http://json.org网站中找到第三方jar包使用。我们项目在用的是json-lib,google那个网上评论不错,也可以考虑使用,不过不同的jar包的调用方式都不尽相同,请自行斟酌使用。
    以下为json-lib的一个小例子。
    如果项目使用的是maven,那么直接在pom.xml中引入依赖既可以。如果是普通的java项目,那么就需要自己手动导入jar包。注意,该jar包需要依赖一些其他jar包,详情可以访问http://json-lib.sourceforge.net/获得详情。

    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
    </dependency>

    以下是使用json-lib的array to json 的sample。

    List<Map<String, Object>> arrayList = new ArrayList<Map<String, Object>> ();
    
    for(int i = 0; i < 5; i++){
        Map<String, Object> map = new HashMap<String, Object>();
        map.put(String.valueOf(i), i);
        arrayList.add(map);
    }
    
    JSONArray jsonArray = JSONArray.fromObject(arrayList);
    System.out.print(jsonArray);
    

    这段代码输出为
    [{"0":0},{"1":1},{"2":2},{"3":3},{"4":4}]
    已经将该arrayList转换为JSONArray了。调用该jsonArray.toString()即可获得一个json字符串。
    而且方便之处在于,JSONArray实现了List接口的。就可以当作普通的List来操作了。
    接下来的代码为将上面获得的json字符串转换为arrayList的sample。

    String jsonStr = jsonArray.toString();
    JSONArray toArray = JSONArray.fromObject(jsonStr);
    List<Map<String, Object>> toList =  (List<Map<String, Object>>)JSONArray.toCollection(toArray, Map.class);
    System.out.println(toList.get(0).get("0"));

    可以看到,通过JSONArray的toCollection方法就可以方便的把JSONArray转换为ArrayList。

    2019-07-17 18:50:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像