Using Jackson instead of Fastjson
This commit is contained in:
parent
33bd6586dd
commit
bb089288c4
|
|
@ -1,117 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.dolphinscheduler.alert.utils;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.dolphinscheduler.common.utils.*;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class JSONUtilsTest {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(JSONUtilsTest.class);
|
||||
|
||||
public List<LinkedHashMap<String, Object>> list = new ArrayList<>();
|
||||
|
||||
public String expected = null;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
//Define expected json string
|
||||
expected = "[{\"mysql service name\":\"mysql200\",\"mysql address\":\"192.168.xx.xx\",\"port\":\"3306\",\"no index of number\":\"80\",\"database client connections\":\"190\"}]";
|
||||
|
||||
//Initial map
|
||||
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("mysql service name", "mysql200");
|
||||
map.put("mysql address", "192.168.xx.xx");
|
||||
map.put("port", "3306");
|
||||
map.put("no index of number", "80");
|
||||
map.put("database client connections", "190");
|
||||
|
||||
//Add map into list
|
||||
list.add(map);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test toJsonString
|
||||
*/
|
||||
@Test
|
||||
public void testToJsonString() {
|
||||
|
||||
//Invoke toJsonString
|
||||
String result = JSONUtils.toJsonString(list);
|
||||
logger.info(result);
|
||||
|
||||
//Equal result with expected string
|
||||
assertEquals(result, expected);
|
||||
// assertEquals(result, "[{\"database client connections\":\"190\",\"mysql address\":\"192.168.xx.xx\",\"mysql service name\":\"mysql200\",\"no index of number\":\"80\",\"port\":\"3306\"}]");
|
||||
|
||||
//If param is null, then return null string
|
||||
result = JSONUtils.toJsonString(null);
|
||||
logger.info(result);
|
||||
|
||||
assertEquals("null", result);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test toList
|
||||
*/
|
||||
@Test
|
||||
public void testToList() {
|
||||
|
||||
//Invoke toList
|
||||
List<LinkedHashMap> result = JSONUtils.toList(expected, LinkedHashMap.class);
|
||||
//Equal list size=1
|
||||
assertEquals(1, result.size());
|
||||
|
||||
//Transform entity to LinkedHashMap<String, Object>
|
||||
LinkedHashMap<String, Object> entity = result.get(0);
|
||||
|
||||
//Equal expected values
|
||||
assertEquals("mysql200", entity.get("mysql service name"));
|
||||
assertEquals("192.168.xx.xx", entity.get("mysql address"));
|
||||
assertEquals("3306", entity.get("port"));
|
||||
assertEquals("80", entity.get("no index of number"));
|
||||
assertEquals("190", entity.get("database client connections"));
|
||||
|
||||
//If param is null, then return empty list
|
||||
result = JSONUtils.toList(null, LinkedHashMap.class);
|
||||
assertNotNull(result);
|
||||
assertTrue(result.isEmpty());
|
||||
|
||||
//If param is incorrect, then return empty list and log error message
|
||||
result = JSONUtils.toList("}{", LinkedHashMap.class);
|
||||
assertNotNull(result);
|
||||
assertTrue(result.isEmpty());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -108,20 +108,6 @@ public class JSONUtils {
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static <T> T parseObject(String json, TypeReference typeReference) {
|
||||
if (StringUtils.isEmpty(json)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
return objectMapper.readValue(json, typeReference);
|
||||
} catch (Exception e) {
|
||||
logger.error("parse object exception!", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* json to list
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
*/
|
||||
package org.apache.dolphinscheduler.common.utils;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
|
|
@ -29,20 +30,66 @@ import java.util.*;
|
|||
|
||||
public class JSONUtilsTest {
|
||||
|
||||
@Test
|
||||
public void createArrayNodeTest() {
|
||||
Property property = new Property();
|
||||
property.setProp("ds");
|
||||
property.setDirect(Direct.IN);
|
||||
property.setType(DataType.VARCHAR);
|
||||
property.setValue("sssssss");
|
||||
String str = "[{\"prop\":\"ds\",\"direct\":\"IN\",\"type\":\"VARCHAR\",\"value\":\"sssssss\"},{\"prop\":\"ds\",\"direct\":\"IN\",\"type\":\"VARCHAR\",\"value\":\"sssssss\"}]";
|
||||
JsonNode jsonNode = JSONUtils.toJsonNode(property);
|
||||
|
||||
ArrayNode arrayNode = JSONUtils.createArrayNode();
|
||||
ArrayList<JsonNode> objects = new ArrayList<>();
|
||||
objects.add(jsonNode);
|
||||
objects.add(jsonNode);
|
||||
|
||||
ArrayNode jsonNodes = arrayNode.addAll(objects);
|
||||
String s = JSONUtils.toJsonString(jsonNodes);
|
||||
Assert.assertEquals(s, str);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toJsonNodeTest() {
|
||||
Property property = new Property();
|
||||
property.setProp("ds");
|
||||
property.setDirect(Direct.IN);
|
||||
property.setType(DataType.VARCHAR);
|
||||
property.setValue("sssssss");
|
||||
String str = "{\"prop\":\"ds\",\"direct\":\"IN\",\"type\":\"VARCHAR\",\"value\":\"sssssss\"}";
|
||||
|
||||
JsonNode jsonNodes = JSONUtils.toJsonNode(property);
|
||||
String s = JSONUtils.toJsonString(jsonNodes);
|
||||
Assert.assertEquals(s, str);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createObjectNodeTest() {
|
||||
String jsonStr = "{\"a\":\"b\",\"b\":\"d\"}";
|
||||
|
||||
ObjectNode objectNode = JSONUtils.createObjectNode();
|
||||
objectNode.put("a","b");
|
||||
objectNode.put("b","d");
|
||||
String s = JSONUtils.toJsonString(objectNode);
|
||||
Assert.assertEquals(s, jsonStr);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toMap() {
|
||||
|
||||
String jsonStr = "{\"id\":\"1001\",\"name\":\"Jobs\"}";
|
||||
|
||||
Map<String,String> models = JSONUtils.toMap(jsonStr);
|
||||
Map<String, String> models = JSONUtils.toMap(jsonStr);
|
||||
Assert.assertEquals("1001", models.get("id"));
|
||||
Assert.assertEquals("Jobs", models.get("name"));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convert2Property(){
|
||||
public void convert2Property() {
|
||||
Property property = new Property();
|
||||
property.setProp("ds");
|
||||
property.setDirect(Direct.IN);
|
||||
|
|
@ -56,7 +103,7 @@ public class JSONUtilsTest {
|
|||
|
||||
|
||||
@Test
|
||||
public void String2MapTest(){
|
||||
public void String2MapTest() {
|
||||
String str = list2String();
|
||||
|
||||
List<LinkedHashMap> maps = JSONUtils.toList(str,
|
||||
|
|
@ -70,31 +117,21 @@ public class JSONUtilsTest {
|
|||
Assert.assertEquals("190", maps.get(0).get("database client connections"));
|
||||
}
|
||||
|
||||
public String list2String(){
|
||||
public String list2String() {
|
||||
|
||||
LinkedHashMap<String, String> map1 = new LinkedHashMap<>();
|
||||
map1.put("mysql service name","mysql200");
|
||||
map1.put("mysql address","192.168.xx.xx");
|
||||
map1.put("port","3306");
|
||||
map1.put("no index of number","80");
|
||||
map1.put("database client connections","190");
|
||||
map1.put("mysql service name", "mysql200");
|
||||
map1.put("mysql address", "192.168.xx.xx");
|
||||
map1.put("port", "3306");
|
||||
map1.put("no index of number", "80");
|
||||
map1.put("database client connections", "190");
|
||||
|
||||
List<LinkedHashMap<String, String>> maps = new ArrayList<>();
|
||||
maps.add(0,map1);
|
||||
maps.add(0, map1);
|
||||
String resultJson = JSONUtils.toJsonString(maps);
|
||||
return resultJson;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToJson() {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("foo","bar");
|
||||
|
||||
Assert.assertEquals("{\"foo\":\"bar\"}", JSONUtils.toJsonString(map));
|
||||
Assert.assertEquals(
|
||||
String.valueOf((Object) null), JSONUtils.toJsonString(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseObject() {
|
||||
Assert.assertNull(JSONUtils.parseObject(""));
|
||||
|
|
@ -124,7 +161,7 @@ public class JSONUtilsTest {
|
|||
@Test
|
||||
public void testToMap() {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("foo","bar");
|
||||
map.put("foo", "bar");
|
||||
|
||||
Assert.assertTrue(map.equals(JSONUtils.toMap(
|
||||
"{\n" + "\"foo\": \"bar\"\n" + "}")));
|
||||
|
|
|
|||
Loading…
Reference in New Issue