Browse Source

[DS-6606] [common] JSONUtils#getNodeString String type (#6618)

3.0.0/version-upgrade
aCodingAddict 3 years ago committed by GitHub
parent
commit
f60e3c219a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
  2. 4
      dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java

7
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java

@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.TimeZone; import java.util.TimeZone;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -231,7 +232,11 @@ public class JSONUtils {
public static String getNodeString(String json, String nodeName) { public static String getNodeString(String json, String nodeName) {
try { try {
JsonNode rootNode = objectMapper.readTree(json); JsonNode rootNode = objectMapper.readTree(json);
return rootNode.has(nodeName) ? rootNode.get(nodeName).toString() : ""; JsonNode jsonNode = rootNode.findValue(nodeName);
if (Objects.isNull(jsonNode)) {
return "";
}
return jsonNode.isTextual() ? jsonNode.asText() : jsonNode.toString();
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
return ""; return "";
} }

4
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java

@ -151,7 +151,9 @@ public class JSONUtilsTest {
Assert.assertEquals("", JSONUtils.getNodeString("", "key")); Assert.assertEquals("", JSONUtils.getNodeString("", "key"));
Assert.assertEquals("", JSONUtils.getNodeString("abc", "key")); Assert.assertEquals("", JSONUtils.getNodeString("abc", "key"));
Assert.assertEquals("", JSONUtils.getNodeString("{\"bar\":\"foo\"}", "key")); Assert.assertEquals("", JSONUtils.getNodeString("{\"bar\":\"foo\"}", "key"));
Assert.assertEquals("\"foo\"", JSONUtils.getNodeString("{\"bar\":\"foo\"}", "bar")); Assert.assertEquals("foo", JSONUtils.getNodeString("{\"bar\":\"foo\"}", "bar"));
Assert.assertEquals("[1,2,3]", JSONUtils.getNodeString("{\"bar\": [1,2,3]}", "bar"));
Assert.assertEquals("{\"1\":\"2\",\"2\":3}", JSONUtils.getNodeString("{\"bar\": {\"1\":\"2\",\"2\":3}}", "bar"));
} }
@Test @Test

Loading…
Cancel
Save