Я получаю следующую ошибку при передаче данных JSON из функции javascript в bean-компонент. ***java.lang.String cannot be cast to org.json.simple.JSONArray***
. Я использую json-simple для анализа данных в бэкэнде. Я использую функцию Js a4j, предоставляемую богатыми лицами, для передачи данных JSON в качестве actionParam. Я использую simple-json для анализа и декодирования передаваемых данных json.
Configurations
richfaces 3.3.3
jsf v1.2
apache tomcat v7.0.x
simple-json
Вот моя переменная javascript, которую я отправляю в компонент
var a = [
{
'name': 'John',
'height' : '170',
'age' : 26
},{
'name': 'Doe',
'height' : '180',
'age' : 30
}
];
removeServiceGroup(JSON.stringify(a));
Это функция a4j:js, которую я использую для вызова внутреннего компонента.
<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
Array: [{"height":"170","age":26,"name":"John"},{"height":"180","age":30,"name":"Doe"}]
в качестве вывода,arr.toString()
- person Laabidi Raissi   schedule 13.06.2013String
как есть. Пожалуйста, посмотрите мой ответ - person Laabidi Raissi   schedule 14.06.2013