Serialization 从keydove'返回数组;脚本映射器

Serialization 从keydove'返回数组;脚本映射器,serialization,wildfly,claims-based-identity,keycloak,Serialization,Wildfly,Claims Based Identity,Keycloak,我喜欢编写脚本来处理角色声明的一些自定义逻辑。不幸的是,我无法返回正确序列化的数组 i、 e.当脚本返回以下数组时: ["one", "two"] 声明值序列化为映射: ...other claims... claimName: { 0: "one", 1: "two" } 我期望JSON数组的位置: ...other claims... claimName: ["one", "two"] 我能做些什么 我希望避免提供定制协议映射器,我还有脚本映射器的其他用例,即处理scope

我喜欢编写脚本来处理角色声明的一些自定义逻辑。不幸的是,我无法返回正确序列化的数组

i、 e.当脚本返回以下数组时:

["one", "two"]
声明值序列化为映射:

...other claims...   
claimName: { 0: "one", 1: "two" }
我期望JSON数组的位置:

...other claims...   
claimName: ["one", "two"]
我能做些什么


我希望避免提供定制协议映射器,我还有脚本映射器的其他用例,即处理
scope
aud
声明

我加强了搜索,刚刚找到了问题的答案

如何从JavaScript创建Java数组

关于犀牛

您必须使用Java反射。例如,要创建长度为5的java.lang.String数组,请执行以下操作

var-stringArray=java.lang.reflect.Array.newInstance(java.lang.String,5)

然后,如果希望将字符串“hi”分配给第一个元素,只需执行

stringArray[0]=“嗨”

但是,为了使其正常工作,我需要通过添加
.class
对其进行一些修改,以获得预期的类型定义:

java.lang.reflect.Array.newInstance(java.lang.String.class, 5);`