1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
package
util;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Map;
import
java.util.Set;
import
net.sf.json.JSONArray;
import
net.sf.json.JSONObject;
public
class
JSONHelper {
/**
* 将JSONArray对象转换成Map-List集合
* @param jsonArr
* @return
*/
public
static
Object JsonToList(JSONArray jsonArr){
List<Object> jsonObjList =
new
ArrayList<Object> ();
for
(Object obj : jsonArr){
if
(obj
instanceof
JSONArray){
jsonObjList.add(JsonToList((JSONArray) obj));
}
else
if
(obj
instanceof
JSONObject){
jsonObjList.add(JsonToMap((JSONObject) obj));
}
else
{
jsonObjList.add(obj);
}
}
return
jsonObjList;
}
/**
* 将JSONObjec对象转换成Map-List集合
* @param json
* @return
*/
public
static
Map<String, Object> JsonToMap(JSONObject json){
Map<String,Object> columnValMap =
new
HashMap<String,Object>();
Set<Object> jsonKeys = json.keySet();
for
(Object key : jsonKeys) {
Object JsonValObj = json.get(key);
if
(JsonValObj
instanceof
JSONArray){
columnValMap.put((String)key, JsonToList((JSONArray) JsonValObj));
}
else
if
(key
instanceof
JSONObject){
columnValMap.put((String)key, JsonToMap((JSONObject) JsonValObj));
}
else
{
columnValMap.put((String)key,JsonValObj);
}
}
return
columnValMap;
}
/**
* 将json对象转换为map集合,通过此方法获取存放map集合键的list集合
* @param obj
* @return
*/
public
static
List<Object> mapKeys(Object obj){
List<Object> keysList =
new
ArrayList<Object>();
Map<String,Object> columnValMap =
new
HashMap<String,Object>();
String columnStr =
"column"
;
if
(obj
instanceof
JSONArray){
List<Map<String, Object>> jsonObjList =
new
ArrayList<Map<String, Object>> ();
jsonObjList = (List<Map<String, Object>>) JsonToList((JSONArray) obj);
columnValMap =(Map<String, Object>) (jsonObjList.get(
0
));
//以上三句可优化为如下一句
//columnValMap =(Map<String, Object>)(((List<Object>)JsonToList((JSONArray) obj)).get(0));
}
else
if
(obj
instanceof
JSONObject){
columnValMap =JsonToMap((JSONObject) obj);
}
else
{
keysList.add(obj);
}
for
(
int
i=
0
;i<columnValMap.keySet().size();i++){
keysList.add(columnStr+(i+
1
));
}
System.out.println(keysList.size());
return
keysList;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package
util;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Map;
import
com.google.gson.Gson;
public
class
JSONHelper {
private
Gson gson =
new
Gson();
/**
* 将json对象转换为map集合,通过此方法获取存放map集合键的list集合
* @param obj
* @return
*/
public
static
List<Object> mapKeys(Map<?,?> map){
List<Object> keysList =
new
ArrayList<Object>();
String columnStr=
"column"
;
for
(
int
i=
0
;i<map.keySet().size();i++){
keysList.add(columnStr+(i+
1
));
}
System.out.println(keysList.size());
return
keysList;
}
/**
* 将传入的json字符串转换为元素为map集合的List集合
* @param jsonArrStr
* @return
*/
public
static
List<Map<String, Object>> jsonObjList(String jsonArrStr) {
List<Map<String, Object>> jsonObjList =
new
ArrayList<Map<String, Object>>();
List<?> jsonList = Test.jsonToList(jsonArrStr);
Gson gson =
new
Gson();
for
(Object object : jsonList) {
String jsonStr = gson.toJson(object);
Map<?, ?> json = Test.jsonToMap(jsonStr);
jsonObjList.add((Map<String, Object>) json);
}
return
jsonObjList;
}
/**
* 将传入的json字符串解析为List集合
* @param jsonStr
* @return
*/
public
static
List<?> jsonToList(String jsonStr) {
List<?> ObjectList =
null
;
Gson gson =
new
Gson();
java.lang.reflect.Type type =
new
com.google.gson.reflect.TypeToken<List<?>>() {}.getType();
ObjectList = gson.fromJson(jsonStr, type);
return
ObjectList;
}
/**
* 将传入的json字符串解析为Map集合
* @param jsonStr
* @return
*/
public
static
Map<?, ?> jsonToMap(String jsonStr) {
Map<?, ?> ObjectMap =
null
;
Gson gson =
new
Gson();
java.lang.reflect.Type type =
new
com.google.gson.reflect.TypeToken<Map<?,?>>() {}.getType();
ObjectMap = gson.fromJson(jsonStr, type);
return
ObjectMap;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
package
util;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Map;
import
org.json.JSONArray;
import
org.json.JSONException;
import
org.json.JSONObject;
/**
* 此类是处理json字符串的工具类
*
* @author xiaomeng
* @since 2013-08-27
*
*/
public
class
JSONHelper {
/**
* 将json字符串转换为List集合
*
* @param jsonArrStr
* @return
*/
public
static
List<Map<String, Object>> jsonObjList(String jsonArrStr) {
List<Map<String, Object>> jsonList =
new
ArrayList<Map<String, Object>>();
JSONArray jsonArr =
null
;
try
{
jsonArr =
new
JSONArray(jsonArrStr);
jsonList = (List<Map<String, Object>>)JSONHelper.jsonToList(jsonArr);
}
catch
(JSONException e) {
System.out.println(
"Json字符串转换异常!"
);
e.printStackTrace();
}
return
jsonList;
}
/**
* 将json对象的键值存放在集合,映射table的column
*
* @param map
* @return
*/
public
static
List<String> jsonMapKeysList(Map<?, ?> map) {
List<String> jsonjsonList =
new
ArrayList<String>();
String columnStr =
"column"
;
for
(
int
i =
0
; i < map.keySet().size(); i++) {
jsonjsonList.add(columnStr + (i +
1
));
}
System.out.println(jsonjsonList.size());
return
jsonjsonList;
}
/**
* 将传递近来的json数组转换为List集合
*
* @param jsonArr
* @return
* @throws JSONException
*/
private
static
List<?> jsonToList(JSONArray jsonArr)
throws
JSONException {
List<Object> jsonToMapList =
new
ArrayList<Object>();
for
(
int
i =
0
; i < jsonArr.length(); i++) {
Object object = jsonArr.get(i);
if
(object
instanceof
JSONArray) {
jsonToMapList.add(JSONHelper.jsonToList((JSONArray) object));
}
else
if
(object
instanceof
JSONObject) {
jsonToMapList.add(JSONHelper.jsonToMap((JSONObject) object));
}
else
{
jsonToMapList.add(object);
}
}
return
jsonToMapList;
}
/**
* 将传递近来的json对象转换为Map集合
*
* @param jsonObj
* @return
* @throws JSONException
*/
@SuppressWarnings
(
"unchecked"
)
private
static
Map<String, Object> jsonToMap(JSONObject jsonObj)
throws
JSONException {
Map<String, Object> jsonMap =
new
HashMap<String, Object>();
Iterator<String> jsonKeys = jsonObj.keys();
while
(jsonKeys.hasNext()) {
String jsonKey = jsonKeys.next();
Object jsonValObj = jsonObj.get(jsonKey);
if
(jsonValObj
instanceof
JSONArray) {
jsonMap.put(jsonKey, JSONHelper.jsonToList((JSONArray) jsonValObj));
}
else
if
(jsonValObj
instanceof
JSONObject) {
jsonMap.put(jsonKey, JSONHelper.jsonToMap((JSONObject) jsonValObj));
}
else
{
jsonMap.put(jsonKey, jsonValObj);
}
}
return
jsonMap;
}
}
|