由於最近做帆軟報表需要,自己百度了很久也沒有找到合適的,干脆自己寫一個吧,程序沒有過多測試,有什么問題可以留言我。
注意:
傳入的Json需要是由List<Object>轉化而來的
例如:[{"name":"zhangsan","age":"20"},{"name":"lisi","age":"21"}]
得到的結果將是一個類似列表式的字符串二維數組
例:
name | age |
zhangsan | 20 |
lisi | 21 |
用到了fastjson
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency>
代碼:
1 public static String[][] convert(String json) { 2 String result[][] = null; 3 String keys[] = null; 4 List<String> keysList = new ArrayList<String>(10); 5 JSONArray objects = JSONObject.parseArray(json); 6 7 for (int i = 0; i < objects.size(); i++) { 8 JSONObject jsonObject = objects.getJSONObject(i); 9 Map<String, Object> map = jsonObject.getInnerMap(); 10 Iterator<String> iter = map.keySet().iterator(); 11 if (i == 0) { 12 while (iter.hasNext()) { 13 String key = iter.next(); 14 keysList.add(key); 15 } 16 keys = keysList.toArray(new String[keysList.size()]); 17 result = new String[objects.size() + 1][keys.length]; 18 result[0] = keys; 19 } 20 for (int j = 0; j < keys.length; j++) { 21 result[i + 1][j] = map.get(keys[j]).toString(); 22 } 23 } 24 return result; 25 }