package cn.okek.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/
* 实用工具包
* @author 周文鹏
* @date 2014-1-21
*/
public class JsonKit {
/
* 将list转为json
* @param lists
* @param sb
* @return
*/
public static StringBuilder listToJson(List<?> lists, StringBuilder sb) {
if (sb == null) sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < lists.size(); i++) {
Object o = lists.get(i);
if (o instanceof Map<?, ?>) {
Map<?, ?> map = (Map<?, ?>) o;
mapToJson(map, sb);
} else if (o instanceof List<?>) {
List<?> l = (List<?>) o;
listToJson(l, sb);
} else {
sb.append(""" + o + """);
}
if (i != lists.size() - 1) sb.append(",");
}
sb.append("]");
return sb;
}
/
* 将map转为json
* @param map
* @param sb
* @return
*/
public static StringBuilder mapToJson(Map<?, ?> map, StringBuilder sb) {
if (sb == null) sb = new StringBuilder();
sb.append("{");
Iterator<?> iter = map.entrySet().iterator();
while (iter.hasNext()) {
Entry<?, ?> entry = (Entry<?, ?>) iter.next();
String key = entry.getKey() != null ? entry.getKey().toString() : "";
sb.append(""" + stringToJson(key) + "":");
Object o = entry.getValue();
if (o instanceof List<?>) {
List<?> l = (List<?>) o;
listToJson(l, sb);
} else if (o instanceof Map<?, ?>) {
Map<?, ?> m = (Map<?, ?>) o;
mapToJson(m, sb);
} else {
String val = entry.getValue() != null ? entry.getValue().toString() : "";
sb.append(""" + stringToJson(val) + """);
}
if (iter.hasNext()) sb.append(",");
}
sb.append("}");
return sb;
}
/
* 将字符串转为json数据
* @param str 数据字符串
* @return json字符串
*/
public static String stringToJson(String str) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
switch (c) {
case '"':
sb.append("\"");
break;
case '\':
sb.append("\\");
break;
case '/':
sb.append("\/");
break;
case 'b':
sb.append("\b");
break;
case 'f':
sb.append("\f");
break;
case '
':
sb.append("\n");
break;
case ' ':
sb.append("\r");
break;
case ' ':
sb.append("\t");
break;
default:
sb.append(c);
}
}
return sb.toString();
}
/
* JsonArray转List
* @param jsonArr
* @return
* @throws JSONException
*/
public static List<Object> 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(jsonToList((JSONArray) object));
} else if (object instanceof JSONObject) {
jsonToMapList.add(jsonToMap((JSONObject) object));
} else {
jsonToMapList.add(object);
}
}
return jsonToMapList;
}
/
* JsonObject转Map
* @param jsonObj
* @return
* @throws JSONException
*/
public static Map<String, Object> jsonToMap(JSONObject jsonObj)
throws JSONException {
Map<String, Object> jsonMap = new TreeMap<String, Object>();
Iterator<?> jsonKeys = jsonObj.keys();
while (jsonKeys.hasNext()) {
String jsonKey = (String) jsonKeys.next();
Object jsonValObj = jsonObj.get(jsonKey);
if (jsonValObj instanceof JSONArray) {
jsonMap.put(jsonKey, jsonToList((JSONArray) jsonValObj));
} else if (jsonValObj instanceof JSONObject) {
jsonMap.put(jsonKey, jsonToMap((JSONObject) jsonValObj));
} else {
jsonMap.put(jsonKey, jsonValObj);
}
}
return jsonMap;
}
今天的文章 2025年map转为json对象(map转换为json对象)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/4801.html