diff --git a/APIJSONORM/pom.xml b/APIJSONORM/pom.xml
index c1bdf23dc..3f776fb6a 100755
--- a/APIJSONORM/pom.xml
+++ b/APIJSONORM/pom.xml
@@ -5,7 +5,7 @@
apijson.orm
apijson-orm
- 5.1.0
+ 5.1.0-F2
jar
APIJSONORM
@@ -21,7 +21,7 @@
com.alibaba
fastjson
- 1.2.79
+ 2.0.4
javax.activation
diff --git a/APIJSONORM/src/main/java/apijson/JSON.java b/APIJSONORM/src/main/java/apijson/JSON.java
index 28c124cab..b610cfc5b 100755
--- a/APIJSONORM/src/main/java/apijson/JSON.java
+++ b/APIJSONORM/src/main/java/apijson/JSON.java
@@ -6,8 +6,8 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.alibaba.fastjson2.JSONReader;
import java.util.List;
@@ -64,18 +64,18 @@ public static String getCorrectJson(String s, boolean isArray) {
* @param json
* @return
*/
+ private static final JSONReader.Feature[] DEFAULT_FASTJSON_FEATURES = {JSONReader.Feature.FieldBased, JSONReader.Feature.UseBigDecimalForDoubles};
public static Object parse(Object obj) {
- int features = com.alibaba.fastjson.JSON.DEFAULT_PARSER_FEATURE;
- features |= Feature.OrderedField.getMask();
try {
- return com.alibaba.fastjson.JSON.parse(obj instanceof String ? (String) obj : toJSONString(obj), features);
+ return com.alibaba.fastjson2.JSON.parse(obj instanceof String ? (String) obj : toJSONString(obj), DEFAULT_FASTJSON_FEATURES);
} catch (Exception e) {
Log.i(TAG, "parse catch \n" + e.getMessage());
}
return null;
}
+
/**obj转JSONObject
- * @param json
+ * @param obj
* @return
*/
public static JSONObject parseObject(Object obj) {
@@ -89,31 +89,7 @@ public static JSONObject parseObject(Object obj) {
* @return
*/
public static JSONObject parseObject(String json) {
- int features = com.alibaba.fastjson.JSON.DEFAULT_PARSER_FEATURE;
- features |= Feature.OrderedField.getMask();
- return parseObject(json, features);
- }
- /**json转JSONObject
- * @param json
- * @param features
- * @return
- */
- public static JSONObject parseObject(String json, int features) {
- try {
- return com.alibaba.fastjson.JSON.parseObject(getCorrectJson(json), JSONObject.class, features);
- } catch (Exception e) {
- Log.i(TAG, "parseObject catch \n" + e.getMessage());
- }
- return null;
- }
-
- /**JSONObject转实体类
- * @param object
- * @param clazz
- * @return
- */
- public static T parseObject(JSONObject object, Class clazz) {
- return parseObject(toJSONString(object), clazz);
+ return parseObject(json, JSONObject.class);
}
/**json转实体类
* @param json
@@ -125,9 +101,7 @@ public static T parseObject(String json, Class clazz) {
Log.e(TAG, "parseObject clazz == null >> return null;");
} else {
try {
- int features = com.alibaba.fastjson.JSON.DEFAULT_PARSER_FEATURE;
- features |= Feature.OrderedField.getMask();
- return com.alibaba.fastjson.JSON.parseObject(getCorrectJson(json), clazz, features);
+ return com.alibaba.fastjson2.JSON.parseObject(getCorrectJson(json), clazz, DEFAULT_FASTJSON_FEATURES);
} catch (Exception e) {
Log.i(TAG, "parseObject catch \n" + e.getMessage());
}
diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractObjectParser.java b/APIJSONORM/src/main/java/apijson/orm/AbstractObjectParser.java
index bdbb366e7..e571cd8b4 100755
--- a/APIJSONORM/src/main/java/apijson/orm/AbstractObjectParser.java
+++ b/APIJSONORM/src/main/java/apijson/orm/AbstractObjectParser.java
@@ -5,13 +5,19 @@
package apijson.orm;
-import static apijson.JSONObject.KEY_COMBINE;
-import static apijson.JSONObject.KEY_DROP;
-import static apijson.JSONObject.KEY_TRY;
-import static apijson.RequestMethod.POST;
-import static apijson.RequestMethod.PUT;
-import static apijson.orm.SQLConfig.TYPE_ITEM;
+import apijson.JSONResponse;
+import apijson.Log;
+import apijson.NotNull;
+import apijson.RequestMethod;
+import apijson.StringUtil;
+import apijson.orm.AbstractFunctionParser.FunctionBean;
+import apijson.orm.exception.ConflictException;
+import apijson.orm.exception.NotExistException;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import javax.activation.UnsupportedDataTypeException;
import java.rmi.ServerException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -22,20 +28,12 @@
import java.util.Map.Entry;
import java.util.Set;
-import javax.activation.UnsupportedDataTypeException;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-import apijson.JSONResponse;
-import apijson.Log;
-import apijson.NotNull;
-import apijson.RequestMethod;
-import apijson.StringUtil;
-import apijson.orm.AbstractFunctionParser.FunctionBean;
-import apijson.orm.exception.ConflictException;
-import apijson.orm.exception.NotExistException;
+import static apijson.JSONObject.KEY_COMBINE;
+import static apijson.JSONObject.KEY_DROP;
+import static apijson.JSONObject.KEY_TRY;
+import static apijson.RequestMethod.POST;
+import static apijson.RequestMethod.PUT;
+import static apijson.orm.SQLConfig.TYPE_ITEM;
/**简化Parser,getObject和getArray(getArrayConfig)都能用
@@ -427,7 +425,7 @@ else if (value instanceof String) { // //key{}@ getRealKey, 引用赋值路径
String replaceKey = key.substring(0, key.length() - 1);
// System.out.println("getObject key.endsWith(@) >> parseRelation = " + parseRelation);
- String targetPath = AbstractParser.getValuePath(type == TYPE_ITEM ? path : parentPath, new String((String) value));
+ String targetPath = AbstractParser.getValuePath(type == TYPE_ITEM ? path : parentPath, (String) value);
//先尝试获取,尽量保留缺省依赖路径,这样就不需要担心路径改变
Object target = onReferenceParse(targetPath);
@@ -572,7 +570,7 @@ public JSON onChildParse(int index, String key, JSONObject value) throws Excepti
invalidate();
}
}
- Log.i(TAG, "onChildParse ObjectParser.onParse key = " + key + "; child = " + child);
+// Log.i(TAG, "onChildParse ObjectParser.onParse key = " + key + "; child = " + child);
return isEmpty ? null : child;//只添加! isChildEmpty的值,可能数据库返回数据不够count
}