Java 在小程序中使用GSON库时出现反射权限问题

Java 在小程序中使用GSON库时出现反射权限问题,java,security,reflection,applet,gson,Java,Security,Reflection,Applet,Gson,我正在编写一个小程序来进行一些JSON-RPC调用。我正在使用GoogleJSON库(GSON)将响应JSON转换为一个类。Thsi似乎工作正常,但当我在Applet中使用此代码时,我被java.lang.reflect.reflectpermission击中。从我的阅读来看,似乎由于GSON使用反射,除非我明确修改安全策略,否则我无法在小程序中使用它。我怎样才能避开这件事?我在应用程序中创建了一系列类,并使用Gson.fromJson方法将其强制转换到类中。是否有任何方法可以实现相同的功能而不

我正在编写一个小程序来进行一些JSON-RPC调用。我正在使用GoogleJSON库(GSON)将响应JSON转换为一个类。Thsi似乎工作正常,但当我在Applet中使用此代码时,我被
java.lang.reflect.reflectpermission
击中。从我的阅读来看,似乎由于GSON使用反射,除非我明确修改安全策略,否则我无法在小程序中使用它。我怎样才能避开这件事?我在应用程序中创建了一系列类,并使用
Gson.fromJson
方法将其强制转换到类中。是否有任何方法可以实现相同的功能而不必重新编写一半代码

(在Java中处理JSON的复杂性似乎有其自身的特点!)

提前感谢各位。

除了小程序之外,您还可以尝试在以下位置执行此操作:

public void init(){
AccessController.doPrivileged(新权限){
@重写公共对象运行(){
//将原始init()放在这里。
返回null;
}
});
}

一些用于Java的JSON库确实非常复杂,特别是考虑到JSON本身的简单性。在我看来,它是最好的库,不做任何花哨的事情,只是将JSON解析成它自己的特殊结构,就这样。这当然意味着您必须编写特定的代码来将JSON对象层次结构转换为您所使用的东西,但这并不难


GSON更多的是基于JSON的持久化(它也可以做JSON),对于一个小程序来说,听起来有点太重了。

Hi Esko。使用JSON.org库编写JSON似乎相当容易,但将JSON解析回对象似乎相当困难。我似乎找不到任何好的例子。你能给我指一下正确的方向吗?关于将JSON解析为JSONObject的教程/文档。Thanks@mridang:使用我链接的JSON库,
JSONObject parsed=newJSONObject(yourJSONContentAsString)。是的,就这么简单。我已经尝试添加doPrivileged上下文,但是反射仍然抛出相同的安全异常。
public void init() {
    AccessController.doPrivileged(new PrivilegedAction<Object> {
        @Override public Object run() {
            // Put your original init() here.
            return null;
        }
    });
}