如何用我自己的json实现替换gwt json

时间:2013-04-17 09:12:34

标签: json gwt

我需要找到一个方法来在我的gwt-project com.google.gwt.json.client包中使用json实现,而不是在GWT com.google.gwt.json package中使用json。

在我的GWT项目中,我想使用自己编写的json实现,并将其存储在我的项目中的包中,路径与GWT json包的路径相同。

这个包中的文件是com.google.gwt.json.client由我自己实现并保存在我的项目中的相同包中,如何在项目中配置使用这些包而不是原始包。

对此有任何建议将不胜感激。

感谢所有..

更新: 有关我正在寻找的内容的更多说明: 在GWT中使用JSONUtils进行解析时,使解析器使用我的项目com.google.gwt.json包中编写的JSONObject,在com.google.gwt.json包中使用GWT-json。

1 个答案:

答案 0 :(得分:2)

有时需要修改某些GWT核心类,因为您需要修复问题,或者需要向它们添加新功能。

要覆盖任何GWT实现类,例如com.google.gwt.json.client.JSONObject,您只需使用相同的路径复制和修改src文件夹中的该类:src/main/java/com/google/gwt/json/client/JSONObject.java如果您使用的是maven,{{1 }} 除此以外。

你唯一需要注意的是你的src/com/google/gwt/json/client/JSONObject.java文件夹在你的类路径中是第一个而不是gwt sdk,默认情况下是maven。您应该也知道,当您更新gwt版本时,可能需要更新您的实现。

如果您尝试覆盖的类的实例是使用src调用在GWT中创建的,则可以使用{{1}中的GWT.create()标记替换您自己的实现的类}}。这种技术称为deferred-binding。情况并非如此,因为<replace-with>通常是使用.gwt.xml创建的。

最后&lt; super-source&gt; tag可用于在编译时覆盖任何类实现。虽然JSONObject旨在通过new实现覆盖super-source类,但将gwt替换为其他gwt实现仍可正常工作。在这种情况下,您必须将具有相同命名空间结构的已修改类放在jre标记指向的文件夹中。