From d81e0de2800abc9b3b1f50b200783a8115da1bff Mon Sep 17 00:00:00 2001 From: richie Date: Tue, 3 Sep 2019 09:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F+=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fanruan/api/cal/ParameterKit.java | 4 +- .../java/com/fanruan/api/json/JSONKit.java | 66 +++++++++++++++++-- .../com/fanruan/api/json/JSONKitTest.java | 22 ++++++- 3 files changed, 81 insertions(+), 11 deletions(-) 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()); } }