java - 组装json对象的问题
PHPz
PHPz 2017-04-18 10:04:22
0
8
545

查询数据库有如下的查询结果
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,不过没实现,请教各位指点下

PHPz
PHPz

学习是最好的投资!

全部回覆(8)
刘奇

題主提出這個問題,是因為還沒有序列化和反序列化的概念。
序列化是將一個物件轉換為某種特定格式資料的過程,例如將一個java實例轉換為xml或json(或其他規範)字串。反序列化過程相反,是將一個xml、json(或其他規範)轉為一個java物件。

具體針對json的序列化和反序列化來講,個人認為有兩種方式
1.自己實現,比如使用反射等方式完成這種方式最終還是拼接字符串,屬於自己造輪子了
2.使用現有的json庫,如gson,jackson,fastjson等,他們提供了比較簡單的序列化和反序列化的介面。
例如使用fastjson,可以類似這種風格實現序列化(偽代碼)

List<User> list = new List<User>();
list.add(new User());
list.add....
String jsonStr = Json.toJsonString(list);

反序列化類似

迷茫

產生 JSON 的 Java 函式庫很多,像是 fastjson (oschina介紹頁)

  • Gson

  • Jackson

  • Fastjson

刘奇

搜尋Gson

Sting str = new Gson().toJson(obj)
迷茫

先組裝成一個Java Bean,然後使用一些JSON序列化的工具,常用的有Jackson,fastjson,Gson等。

阿神

可以用hashmap,放到list之後,再放到map中,透過Gson轉換。
例如
Map nameMap = new HashMap();
nameMap .put(name,"張三");
nameMap .put(remark,"售貨員");
MapnameMap .put(remark,"售貨員");
Map dataMap= new HashMap();
List dataList =new ArrayList();
for(int i=0;idataMap.put("data","資料1");
dataMap.put("type","666");
}
dataList.add(dataMap);
nameMap.put(display,dataList);

String s = new Gson().toJson( nameMap);🎜程式碼稍微調整一下應該可以運作。 🎜
大家讲道理

可以嘗試各種工具類 Gson是個不錯的選擇

巴扎黑

java有那麼多將物件序列化為json字串為啥不用呢

黄舟

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板