将地图 <Enum, Object> 转换为 JSON
Converting Map<Enum, Object> to JSON
我在这样的服务器上构建了一个 json:
List<Object> resp = new ArrayList<>();
for (String str : buffer.toString().split("\n")) {
for (String data : str.split("\s")) {
if (data.matches("[\w|\W]+") && !data.isEmpty()) {
Child.set(Child.children, "null");
Child.set(Child.parent, chain.name());
Child.set(Child.name, data);
}
Child.setChild(Child.get());
}
}
Child.set(Child.children, Child.getChild().toArray());
Child.set(Child.parent, "null");
Child.set(Child.name, chain.name());
问题是 Child 是 HashMap<Child, Object>
,但是当我将 Child.set(Child.children, Child.getChild().toArray());
放入 Map,然后将带有 Google Gson 的 Map 对象转换为 Json 时,它因错误而中断:
oejw.WebSocketConnectionRFC6455:java.lang.WhosebugError
我认为问题不在于 WebSocket,因为当我之前转换为 json 和 Child.getChild().toArray()
然后将其放入地图时,没有任何错误,但是生成的json 未完全更正。
问题在于转换为 Json。 Gson 转换时出现堆栈溢出错误。
使用 JSONObject 和 JSONArray 解决。
我在这样的服务器上构建了一个 json:
List<Object> resp = new ArrayList<>();
for (String str : buffer.toString().split("\n")) {
for (String data : str.split("\s")) {
if (data.matches("[\w|\W]+") && !data.isEmpty()) {
Child.set(Child.children, "null");
Child.set(Child.parent, chain.name());
Child.set(Child.name, data);
}
Child.setChild(Child.get());
}
}
Child.set(Child.children, Child.getChild().toArray());
Child.set(Child.parent, "null");
Child.set(Child.name, chain.name());
问题是 Child 是 HashMap<Child, Object>
,但是当我将 Child.set(Child.children, Child.getChild().toArray());
放入 Map,然后将带有 Google Gson 的 Map 对象转换为 Json 时,它因错误而中断:
oejw.WebSocketConnectionRFC6455:java.lang.WhosebugError
我认为问题不在于 WebSocket,因为当我之前转换为 json 和 Child.getChild().toArray()
然后将其放入地图时,没有任何错误,但是生成的json 未完全更正。
问题在于转换为 Json。 Gson 转换时出现堆栈溢出错误。 使用 JSONObject 和 JSONArray 解决。