我使用Gson
反序列化一些JSON字符串实例化接口(实际上这是JWT)通过由HTTP标头。该json包含:GSON:从JSON字符串
[
{"authority":"a1"},
{"authority":"a2"},
{"authority":"a3"},
.
.
.
{"authority":"a4"},
]
in JsonElement
。 我想上面的部分被反序列化到现场(在某些类):
Set<GrantedAuthority> authorities
哪里GrantedAuthority
是春天的接口,它有一个实现SimpleGrantedAuthority
。 SimpleGrantedAuthority
有一个构造函数的字符串:
公共SimpleGrantedAuthority(字符串AU){this.au = AU}
我需要GSON知道实现类接口GrantedAuthority
,以反序列化JSON的。我尝试:
public class GrantedAuthorityInstanceCreator implements InstanceCreator<GrantedAuthority> {
@Override
public GrantedAuthority createInstance(Type type) {
// no such constructor
GrantedAuthority ga = new SimpleGrantedAuthority();
return ga;
}
}
但由于SimpleGrantedAuthority
没有无参数的构造函数,我需要提供一个参数构造函数。我怎样才能做到这一点?
如何描述涉及到的称号?你想达到什么目的? – waltersu
@waltersu我想反序列化json字符串到该字段,但它是一个接口类型,我不知道如何编程gson来实例化该接口使用实现'SimpleGrantedAuthority' –
为什么不将它们反序列化为'SimpleGrantedAuthority',并自己创建'Set'并将它们放入集合中? –
waltersu