将 JSON 数据从 javascript 函数传递到 bean 时出现以下错误。
***java.lang.String cannot be cast to org.json.simple.JSONArray***
. 我正在使用json-simple来解析后端中的数据我正在使用富人脸提供的 a4j Js 函数将 JSON 数据作为 actionParam 传递。我正在使用 simple-json 来解析和解码正在传递的 json 数据。
Configurations
richfaces 3.3.3
jsf v1.2
apache tomcat v7.0.x
simple-json
这是我发送到 bean 的 javascript 变量
var a = [
{
'name': 'John',
'height' : '170',
'age' : 26
},{
'name': 'Doe',
'height' : '180',
'age' : 30
}
];
removeServiceGroup(JSON.stringify(a));
这是我用来调用后端 bean 的 a4j:jsfunction
<a4j:jsFunction name="removeServiceGroup" action="#{someBean.removeServiceGroup}">
<a4j:actionparam name="jsonData" />
</a4j:jsFunction>
在bean中,这就是我接收数据并解析它的方式
String a = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("jsonData");
System.out.println(a);
JSONParser parser = new JSONParser();
Object obj = parser.parse(a);
JSONArray arr = (JSONArray)obj;
system.out.println 在控制台上显示
"[{\"name\": \"John\", \"height\": \"170\", \"age\": 26}, {\"name\": \"Doe\", \"height\": \"180\", \"age\": 30}]"
我究竟做错了什么。我浏览了几个论坛并尝试用几种不同的方法执行此操作,但最终都会出现相同的错误消息
java.lang.String cannot be cast to org.json.simple.JSONArray