由于最近做帆软报表需要,自己百度了很久也没有找到合适的,干脆自己写一个吧,程序没有过多测试,有什么问题可以留言我。
注意:
传入的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 }