当前位置 : 主页 > 编程语言 > c++ >

json 格式化工具类

来源:互联网 收集:自由互联 发布时间:2021-06-30
json 格式化工具类 package cn.jiangzeyin.util.util;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/
json 格式化工具类
package cn.jiangzeyin.util.util;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * json工具类
 *
 * @author jiangzeyin
 */
public final class JsonUtil {

    public static JSONArray sortJsonArrayByDate(JSONArray mJSONArray, String dateName) {
        List
 
   list = new ArrayList<>();
        JSONObject jsonObj = null;
        for (int i = 0; i < mJSONArray.size(); i++) {
            jsonObj = mJSONArray.getJSONObject(i);
            list.add(jsonObj);
        }
        // 排序操作
        JsonComparator pComparator = new JsonComparator(dateName);
        Collections.sort(list, pComparator);
        // 把数据放回去
        JSONArray mJSONArray_ = new JSONArray();
        for (int i = 0; i < list.size(); i++) {
            jsonObj = list.get(i);
            mJSONArray_.add(jsonObj);
        }
        return mJSONArray_;
    }

    /**
     * 对 json 进行排序
     *
     * @param mJSONArray array
     * @param dateName   date
     * @param way        way
     * @return array
     * @author jiangzeyin
     */
    public static JSONArray sortJsonArrayByDate(JSONArray mJSONArray, String dateName, String way) {
        List
  
    list = new ArrayList<>(); JSONObject jsonObj = null; for (int i = 0; i < mJSONArray.size(); i++) { jsonObj = mJSONArray.getJSONObject(i); list.add(jsonObj); } // 排序操作 JsonComparator pComparator = new JsonComparator(dateName, way); Collections.sort(list, pComparator); // 把数据放回去 JSONArray mJSONArray_ = new JSONArray(); for (int i = 0; i < list.size(); i++) { jsonObj = list.get(i); mJSONArray_.add(jsonObj); } return mJSONArray_; } /** * 删除 json 指定值 * * @param array a * @param remove r * @return array * @author jiangzeyin */ public static JSONArray filterJson(JSONArray array, String remove) { JSONArray array_ = new JSONArray(); for (int i = 0; i < array.size(); i++) { JSONObject obj = array.getJSONObject(i); obj = filterJson(obj, remove); array_.add(obj); } return array_; } /** * @param obj obj * @param remove r * @return json * @author jiangzeyin */ public static JSONObject filterJson(JSONObject obj, String remove) { String[] rs = StringUtil.StringToArray(remove, ","); for (String string : rs) { obj.remove(string); } return obj; } /** * 格式化 * * @param jsonStr json * @return r * @author lizhgb */ public static String formatJson(String jsonStr) { if (null == jsonStr || "".equals(jsonStr)) return ""; StringBuilder sb = new StringBuilder(); char last = '\0'; char current = '\0'; int indent = 0; for (int i = 0; i < jsonStr.length(); i++) { last = current; current = jsonStr.charAt(i); switch (current) { case '{': case '[': sb.append(current); sb.append('\n'); indent++; addIndentBlank(sb, indent); break; case '}': case ']': sb.append('\n'); indent--; addIndentBlank(sb, indent); sb.append(current); break; case ',': sb.append(current); if (last != '\\') { sb.append('\n'); addIndentBlank(sb, indent); } break; default: sb.append(current); } } return sb.toString(); } /** * 添加space * * @param sb sb * @param indent i * @author lizhgb */ private static void addIndentBlank(StringBuilder sb, int indent) { for (int i = 0; i < indent; i++) { sb.append(" "); } } public static JSONObject toJSONObject(JSONArray jsonArray, String key) { JSONObject jsonObject = new JSONObject(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject temp = jsonArray.getJSONObject(i); String[] keyValues = StringUtil.StringToArray(key); if (keyValues != null) { for (String item : keyValues) { String[] k = item.split(":"); String[] keys = k[0].split("_"); String keyName = k[0]; if (keys.length == 2) { keyName = keys[0]; } String jsonKeyName = temp.getString(keyName); if (keys.length == 2) { jsonKeyName += "_" + keys[1]; } jsonObject.put(jsonKeyName, temp.getString(k[1])); } } } return jsonObject; } /** * jsonn 排序 类 * * @author jiangzeyin */ public static class JsonComparator implements Comparator
   
     { String dateName = ""; String way = "desc"; JsonComparator(String dateName) { this.dateName = dateName; } JsonComparator(String dateName, String way) { this.dateName = dateName; } @Override public int compare(JSONObject json1, JSONObject json2) { String date1 = json1.getString(dateName); String date2 = json2.getString(dateName); System.out.println(date1 + " " + date2); if (date1.compareTo(date2) < 0) { return "desc".equalsIgnoreCase(way) ? -1 : 1; } else if (date1.compareTo(date2) > 0) { return "desc".equalsIgnoreCase(way) ? 1 : -1; } return 0; } } }
   
  
 
网友评论