查询数据库有如下的查询结果
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,不过没实现,请教各位指点下
題主提出這個問題,是因為還沒有序列化和反序列化的概念。
序列化是將一個物件轉換為某種特定格式資料的過程,例如將一個java實例轉換為xml或json(或其他規範)字串。反序列化過程相反,是將一個xml、json(或其他規範)轉為一個java物件。
具體針對json的序列化和反序列化來講,個人認為有兩種方式
1.自己實現,比如使用反射等方式完成這種方式最終還是拼接字符串,屬於自己造輪子了
2.使用現有的json庫,如gson,jackson,fastjson等,他們提供了比較簡單的序列化和反序列化的介面。
例如使用fastjson,可以類似這種風格實現序列化(偽代碼)
反序列化類似
產生 JSON 的 Java 函式庫很多,像是 fastjson (oschina介紹頁)
Gson
Jackson
Fastjson
搜尋Gson
先組裝成一個Java Bean,然後使用一些JSON序列化的工具,常用的有
Jackson,fastjson,Gson
等。可以用hashmap,放到list之後,再放到map中,透過Gson轉換。 nameMap = new HashMap();nameMap .put(remark,"售貨員"); dataMap= new HashMap();
String s = new Gson().toJson( nameMap);🎜程式碼稍微調整一下應該可以運作。 🎜例如
Map
nameMap .put(name,"張三");
nameMap .put(remark,"售貨員");
Map
Map
List dataList =new ArrayList();
for(int i=0;idataMap.put("data","資料1");
dataMap.put("type","666");
}
dataList.add(dataMap);
nameMap.put(display,dataList);
可以嘗試各種工具類 Gson是個不錯的選擇
java有那麼多將物件序列化為json字串為啥不用呢
雷雷