我正在编写一个进行JSON-RPC调用的Applet。我正在使用Google JSON库(GSON)将响应JSON转换为类。 Thsi似乎工作得很好但是当我在我的Applet中使用这个代码时,我遇到了java.lang.reflect.reflectpermission
。从我在this thread上看到的SO,似乎由于GSON使用Reflection,我不能在Applet中使用它,除非我明确修改安全策略。我怎么能绕过这个?我在我的应用程序中创建了一堆类,并使用Gson.fromJson
方法将其强制转换为类。有没有办法实现相同的功能,而无需重写我的一半代码。
(在Java中处理JSON的复杂性似乎属于它自己的联盟!)
先谢谢你们。
答案 0 :(得分:0)
除了signing小程序之外,您可以尝试在AccessController#doPrivileged()
中执行此操作:
public void init() {
AccessController.doPrivileged(new PrivilegedAction<Object> {
@Override public Object run() {
// Put your original init() here.
return null;
}
});
}
答案 1 :(得分:0)
Java的一些JSON库确实令人麻木,特别是考虑到JSON本身的简单性。在我看来,http://www.json.org/java/index.html是最好的库,并没有做任何花哨的技巧,只是将JSON解析为它自己的特殊结构,就是这样。这当然意味着你必须制作特定的代码来将JSON对象层次结构转换为你使用的东西,但这不应该那么难。
GSON更多地关注基于JSON的持久性XStream(它也可以做JSON),并且对于一个Applet来说听起来有点过于沉重。