update json

pull/413/head
weihu 3 years ago
parent 35567d57aa
commit 88825e398b

@ -17,23 +17,25 @@
package com.tencent.cloud.polaris.ratelimit.endpoint;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.util.JsonFormat;
import com.tencent.cloud.common.util.JacksonUtils;
import com.tencent.cloud.polaris.context.ServiceRuleManager;
import com.tencent.cloud.polaris.ratelimit.config.PolarisRateLimitProperties;
import com.tencent.polaris.client.pb.RateLimitProto;
import com.tencent.polaris.client.pb.RoutingProto;
import org.apache.commons.lang.StringUtils;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.annotation.Selector;
import org.springframework.lang.Nullable;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Endpoint of Polaris RateLimit rule.
*
@ -73,27 +75,15 @@ public class PolarisRateLimitRuleEndpoint {
return rateLimitRule;
}
for (RateLimitProto.Rule rule : rateLimit.getRulesList()) {
Map<String, Object> ruleMap = new HashMap<>();
ruleMap.put("id", rule.getId());
ruleMap.put("priority", rule.getPriority());
ruleMap.put("resource", rule.getResource());
ruleMap.put("type", rule.getType());
ruleMap.put("labels", rule.getLabelsMap());
ruleMap.put("amounts", rule.getAmountsList());
ruleMap.put("action", rule.getAction());
ruleMap.put("disable", rule.getDisable());
ruleMap.put("report", rule.getReport());
ruleMap.put("create_time", rule.getCtime());
ruleMap.put("modify_time", rule.getMtime());
ruleMap.put("revision", rule.getRevision());
ruleMap.put("service_token", rule.getServiceToken());
ruleMap.put("adjuster", rule.getAdjuster());
ruleMap.put("regex_combine", rule.getRegexCombine());
ruleMap.put("amount_mode", rule.getAmountMode());
ruleMap.put("failover", rule.getFailover());
ruleMap.put("cluster", rule.getCluster());
rateLimitRule.add(ruleMap);
String ruleJson = null;
try {
ruleJson = JsonFormat.printer().print(rule);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
rateLimitRule.add(JacksonUtils.json2Map(ruleJson));
}
return rateLimitRule;
}

@ -17,16 +17,17 @@
package com.tencent.cloud.common.util;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* Utils for Jackson.
*
@ -37,7 +38,7 @@ public final class JacksonUtils {
/**
* Object Mapper.
*/
public static final ObjectMapper OM = new ObjectMapper();
public static final ObjectMapper OM = new ObjectMapper().disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
private static final Logger LOG = LoggerFactory.getLogger(JacksonUtils.class);
@ -84,4 +85,13 @@ public final class JacksonUtils {
throw new RuntimeException("Json to map failed.", e);
}
}
public static Map<String, Object> json2Map(String jsonStr) {
try {
return OM.readValue(jsonStr, Map.class);
} catch (IOException e) {
LOG.error("Json to map failed. check if the format of the json string[{}] is correct.", jsonStr, e);
}
return new HashMap<>();
}
}

Loading…
Cancel
Save