diff --git a/src/main/java/com/fanruan/api/cal/ParameterKit.java b/src/main/java/com/fanruan/api/cal/ParameterKit.java index 5750b54..bc1cb30 100644 --- a/src/main/java/com/fanruan/api/cal/ParameterKit.java +++ b/src/main/java/com/fanruan/api/cal/ParameterKit.java @@ -53,7 +53,7 @@ public class ParameterKit { * @param hasColumnRow 是否需要分析格子类型的参数 * @return 字符串中包含的参数集合 */ - public static Parameter[] analyze4Parameters(String text, boolean hasColumnRow) { + public static ParameterProvider[] analyze4Parameters(String text, boolean hasColumnRow) { return ParameterHelper.analyze4Parameters(text, hasColumnRow); } @@ -95,7 +95,7 @@ public class ParameterKit { * @return 名字空间,用于传递给算子做计算 */ - public static @NotNull ParameterMapNameSpace createParameterMapNameSpace(ParameterProvider[] ps) { + public static @NotNull NameSpace createParameterMapNameSpace(ParameterProvider[] ps) { return ParameterMapNameSpace.create(ps); } /** diff --git a/src/main/java/com/fanruan/api/json/JSONKit.java b/src/main/java/com/fanruan/api/json/JSONKit.java index 86bdedf..473f485 100644 --- a/src/main/java/com/fanruan/api/json/JSONKit.java +++ b/src/main/java/com/fanruan/api/json/JSONKit.java @@ -1,21 +1,73 @@ package com.fanruan.api.json; + +import com.fr.json.JSON; +import com.fr.json.JSONArray; +import com.fr.json.JSONFactory; import com.fr.json.JSONObject; +import java.util.Collection; +import java.util.Map; + +/** + * 创建JSON对象相关的工具类 + */ public class JSONKit { + /** - * 创建一个JSONObject对象 + * 创建一个空的JSON对象 * - * @return 一个JSONObject对象 + * @return JSON对象 */ public static JSONObject create() { - return new JSONObject(); + return JSONFactory.createJSON(JSON.OBJECT); } + /** - * 创建一个JSONObject对象 - * @param text 用来创建对象时的字符串 - * @return 一个JSONObject对象 + * 根据文本创建一个JSONObject对象 + * + * @param text 文本 + * @return JSON对象 */ public static JSONObject create(String text) { - return new JSONObject(text); + return JSONFactory.createJSON(JSON.OBJECT, text); + } + + /** + * 根据一个字典创建一个JSON对象 + * + * @param map 字典 + * @return JSON对象 + */ + public static JSONObject create(Map map) { + return JSONFactory.createJSON(JSON.OBJECT, map); + } + + /** + * 创建一个空的JSON数组 + * + * @return JSON数组 + */ + public static JSONArray createJSONArray() { + return JSONFactory.createJSON(JSON.ARRAY); + } + + /** + * 根据文本内容创建一个JSON数组 + * + * @param text 文本 + * @return JSON数组 + */ + public static JSONArray createJSONArray(String text) { + return JSONFactory.createJSON(JSON.ARRAY, text); + } + + /** + * 根据一个集合创建一个JSON数组 + * + * @param collection 集合 + * @return JSON数组 + */ + public static JSONArray createJSONArray(Collection collection) { + return JSONFactory.createJSON(collection); } } diff --git a/src/test/java/com/fanruan/api/json/JSONKitTest.java b/src/test/java/com/fanruan/api/json/JSONKitTest.java index 32c4261..874a94a 100644 --- a/src/test/java/com/fanruan/api/json/JSONKitTest.java +++ b/src/test/java/com/fanruan/api/json/JSONKitTest.java @@ -1,15 +1,33 @@ package com.fanruan.api.json; -import com.fanruan.api.util.ArrayKit; -import com.fr.json.JSONObject; +import com.fr.json.JSONArray; +import com.fr.json.JSONObject; +import com.fr.third.guava.collect.Lists; import org.junit.Assert; import org.junit.Test; +import java.util.HashMap; +import java.util.Map; + public class JSONKitTest { @Test public void create() throws Exception{ Assert.assertEquals(JSONKit.create(), new JSONObject()); Assert.assertEquals(JSONKit.create("{test:123}"), new JSONObject("{test:123}")); + Map map = new HashMap<>(); + map.put("start", 1); + map.put("end", 2); + JSONObject jsonObject = JSONKit.create(map); + Assert.assertEquals(2, jsonObject.get("end")); + + JSONArray jsonArray = JSONKit.createJSONArray("[{test:123},{test:234}]"); + Assert.assertEquals(123, jsonArray.getJSONObject(0).get("test")); + + JSONArray jsonArray1 = JSONKit.createJSONArray(Lists.newArrayList("a", "b", "c")); + Assert.assertEquals(3, jsonArray1.length()); + + JSONArray jsonArray2 = JSONKit.createJSONArray(); + Assert.assertEquals(0, jsonArray2.length()); } }