将 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