3

我正在编写一个进行一些 JSON-RPC 调用的 Applet。我正在使用 Google JSON 库 (GSON) 将响应 JSON 转换为一个类。Thsi 似乎可以正常工作,但是当我在 Applet 中使用此代码时,我遇到了java.lang.reflect.reflectpermission. 从我在这个线程上读到的内容来看,似乎由于 GSON 使用反射,除非我明确修改安全策略,否则我不能在 Applets 中使用它。我怎样才能解决这个问题?我在我的应用程序中创建了一堆类,并使用该Gson.fromJson方法将其转换为类。有什么方法可以实现相同的功能而不必重写我的一半代码。

(在 Java 中处理 JSON 的复杂性似乎独树一帜!)

提前谢谢各位。

4

2 回答 2

0

除了签署小程序之外,您还可以尝试执行以下操作AccessController#doPrivileged()

public void init() {
    AccessController.doPrivileged(new PrivilegedAction<Object> {
        @Override public Object run() {
            // Put your original init() here.
            return null;
        }
    });
}
于 2010-05-07T13:38:04.963 回答
0

一些用于 Java 的 JSON 库确实非常复杂,尤其是考虑到 JSON 本身的简单性。在我看来, http://www.json.org/java/index.html是最好的库,它没有做任何花哨的技巧,只是将 JSON 解析成它自己的特殊结构,仅此而已。这当然意味着您必须编写特定的代码来将 JSON 对象层次结构转换为您使用的东西,但这不应该那么难。

GSON 更多地是关于XStream(它也可以做 JSON)的脉络中基于 JSON 的持久性,对于一个 Applet 来说听起来有点过于重量级了。

于 2010-05-07T13:42:19.633 回答