提交 46a4ab9f 编写于 作者: Z zhourui

修复scriptObjectMirror

上级 ea727bad
package com.x.base.core.project.gson;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import jdk.nashorn.api.scripting.ScriptObjectMirror;
public class ScriptObjectMirrorSerializer implements JsonSerializer<ScriptObjectMirror> {
public JsonElement serialize(ScriptObjectMirror scriptObjectMirror, Type type, JsonSerializationContext context) {
if (null == scriptObjectMirror) {
return JsonNull.INSTANCE;
}
if (scriptObjectMirror.isArray()) {
List<Object> list = new ArrayList<>();
for (String str : scriptObjectMirror.getOwnKeys(false)) {
list.add(scriptObjectMirror.get(str));
}
return XGsonBuilder.instance().toJsonTree(list);
} else {
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
for (String str : scriptObjectMirror.getOwnKeys(false)) {
map.put(str, scriptObjectMirror.get(str));
}
return XGsonBuilder.instance().toJsonTree(map);
}
}
}
\ No newline at end of file
......@@ -16,6 +16,7 @@ import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.x.base.core.project.tools.DateTools;
import jdk.nashorn.api.scripting.ScriptObjectMirror;
public class XGsonBuilder {
......@@ -34,6 +35,7 @@ public class XGsonBuilder {
gson.registerTypeAdapter(Long.class, new LongDeserializer());
gson.registerTypeAdapter(Date.class, new DateDeserializer());
gson.registerTypeAdapter(Date.class, new DateSerializer());
gson.registerTypeAdapter(ScriptObjectMirror.class, new ScriptObjectMirrorSerializer());
INSTANCE = gson.setPrettyPrinting().create();
}
}
......@@ -157,7 +159,7 @@ public class XGsonBuilder {
}
try {
JsonElement jsonElement = new JsonParser().parse(json);
if (jsonElement.isJsonObject()){
if (jsonElement.isJsonObject()) {
return true;
} else {
return false;
......@@ -173,7 +175,7 @@ public class XGsonBuilder {
}
try {
JsonElement jsonElement = new JsonParser().parse(json);
if (jsonElement.isJsonArray()){
if (jsonElement.isJsonArray()) {
return true;
} else {
return false;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册