猿问

组装json对象的问题

查询数据库有如下的查询结果
name id remark time data type contain
张三 1 测试 2016 数据1 test1 1
张三 1 测试 2016 数据2 test2 1
张三 1 测试 2016 数据3 test3 1
张三 1 测试 2016 数据4 test4 1
李四 2 测试2 2016 数据99 test66 0
李四 2 测试2 2016 数据98 test66 0
......
现在我想处理数据,形成如下格式
[{name:张三,remark:测试,time:2016,display:[{data:数据1,type:test1},{data:数据2,type:test2},{data:数据3,type:test3},{data:数据4,type:test4}]},{name:李四,remark:测试2,time:2016,display:[{data:数据99,type:test66},[{data:数据98,type:test66}]}]
需要一个比较方便的方法,手动拼接就算了,感谢。

[

  {

    name: 张三,remark:测试,time:2016,display: [

      {

        data: 数据1,type: test1

      },

      {

        data: 数据2,type: test2

      },

      {

        data: 数据3,type: test3

      },

      {

        data: 数据4,type: test4

      }

    ]

  },

  {

    name: 李四,remark:测试2,time:2016,display: [

      {

        data: 数据99,type: test66

      },

      [

        {

          data: 数据98,type: test66

        }

      ]

    }

  ]

想到用hashmap,不过没实现,请教各位指点下

慕娘9325324
浏览 409回答 8
8回答

梵蒂冈之花

生成 JSON 的 Java 库很多,比如 fastjson (oschina介绍页面)GsonJacksonFastjson

ibeautiful

搜索GsonSting str = new Gson().toJson(obj)

汪汪一只猫

先组装成一个Java Bean,然后使用一些JSON序列化的工具,常用的有Jackson,fastjson,Gson等。

HUWWW

可以用hashmap,放到list之后,再放到map中,通过Gson转化。比如Map<String,Stirng> nameMap = new HashMap<String,String>();nameMap .put(name,"张三");nameMap .put(remark,"售货员");Map<String,Stirng> dataMap= new HashMap<String,String>();List dataList =new ArrayList();for(int i=0;i<=4;i++){dataMap.put("data","数据1");dataMap.put("type","666");}dataList.add(dataMap);nameMap.put(display,dataList);String s = new Gson().toJson(nameMap);代码稍微调整一下应该能运行。

素胚勾勒不出你

java有那么多将对象序列化为json字符串为啥不用呢

哆啦的时光机

public class JsonUtils{&nbsp; &nbsp;&nbsp;&nbsp; private static final ObjectMapper mapper = new ObjectMapper();&nbsp; public static String Object2Json(Object o)throws BusinessException{&nbsp; &nbsp; StringWriter writer = new StringWriter();&nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; mapper.writeValue(writer, o);&nbsp; &nbsp; } catch (IOException e) {&nbsp; &nbsp; &nbsp; e.printStackTrace();&nbsp; &nbsp; &nbsp; throw new BusinessException(0, "Entity转换成Json时出现异常。", e);&nbsp; &nbsp; }&nbsp; &nbsp; return writer.toString();&nbsp; }
随时随地看视频慕课网APP

相关分类

Java
我要回答