|
|
@ -16,33 +16,22 @@ |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
package org.apache.dolphinscheduler.common.utils; |
|
|
|
package org.apache.dolphinscheduler.common.utils; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import java.util.TimeZone; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonGenerator; |
|
|
|
import com.fasterxml.jackson.core.JsonGenerator; |
|
|
|
import com.fasterxml.jackson.core.JsonParser; |
|
|
|
import com.fasterxml.jackson.core.JsonParser; |
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
|
import com.fasterxml.jackson.databind.DeserializationContext; |
|
|
|
import com.fasterxml.jackson.databind.*; |
|
|
|
import com.fasterxml.jackson.databind.DeserializationFeature; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonDeserializer; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonSerializer; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectWriter; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.SerializationFeature; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.SerializerProvider; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.node.ArrayNode; |
|
|
|
import com.fasterxml.jackson.databind.node.ArrayNode; |
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode; |
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode; |
|
|
|
import com.fasterxml.jackson.databind.node.TextNode; |
|
|
|
import com.fasterxml.jackson.databind.node.TextNode; |
|
|
|
import com.fasterxml.jackson.databind.type.CollectionType; |
|
|
|
import com.fasterxml.jackson.databind.type.CollectionType; |
|
|
|
|
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static com.fasterxml.jackson.databind.DeserializationFeature.*; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -55,17 +44,16 @@ public class JSONUtils { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* can use static singleton, inject: just make sure to reuse! |
|
|
|
* can use static singleton, inject: just make sure to reuse! |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private static final ObjectMapper objectMapper = new ObjectMapper(); |
|
|
|
private static final ObjectMapper objectMapper = new ObjectMapper() |
|
|
|
|
|
|
|
.configure(FAIL_ON_UNKNOWN_PROPERTIES, false) |
|
|
|
|
|
|
|
.configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true) |
|
|
|
|
|
|
|
.configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true) |
|
|
|
|
|
|
|
.setTimeZone(TimeZone.getDefault()) |
|
|
|
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
private JSONUtils() { |
|
|
|
private JSONUtils() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static { |
|
|
|
|
|
|
|
//Feature that determines whether encountering of unknown properties, false means not analyzer unknown properties
|
|
|
|
|
|
|
|
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setTimeZone(TimeZone.getDefault()); |
|
|
|
|
|
|
|
objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true).setTimeZone(TimeZone.getDefault()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static ArrayNode createArrayNode() { |
|
|
|
public static ArrayNode createArrayNode() { |
|
|
|
return objectMapper.createArrayNode(); |
|
|
|
return objectMapper.createArrayNode(); |
|
|
|