我正在使用 ZK 框架,希望将视图从 DefaultTreeModel 序列化为 JSON 格式。我的数据如下所示:
private TreeModel<TreeNode<TreeDataDTO>> dataTree = new DefaultTreeModel<>(catTreeNodeRoot);
我尝试使用Gson如下:
String jsonString = (new Gson()).toJson(dataTree);
但它不能转换dataTree的子数据。所有子数据在 jsonString 中都显示为 null。
取决于数据显示为空的原因。您确定您的 TreeDataDTO 可以通过您的 Gson 实例转换为 JSON 吗?
您可能想要使用与默认配置不同的东西,例如序列化空值,这应该让您对 GSON 实际解析的内容有一定的了解。为此,您可以使用 GsonBuilder 类来创建具有相关配置的 Gson 实例:
GsonBuilder().serializeNulls().create()
如果这不是您所需要的,您可能希望通过使用递归进行树遍历方法来检索每个节点的数据内容。
下面是伪代码,但它应该看起来像:
JSONObject serializeTreeNode(treeNode){ //THIS IS PSEUDOCODE
JSONObject thisNode = new JSONObject;
/*write relevant data from the treeNode such as the value and other things you want here */
List<JSONObject> children = new ArrayList();
for(child: treeNode.getChildren()){
children.add(serializeTreeNode(child))
}
thisNode.put("children", children);
return thisNode;
}