我目前正在使用Gson和JQWidgets。
步骤1:使用gson使用其api将以下格式的json数据发送到网格,作为JQWidgets支持的行。
[
{ "CompanyName": "Alfreds Futterkiste", "ContactName": "Maria Anders", "ContactTitle": "Sales Representative", "Address": "Obere Str. 57", "City": "Berlin", "Country": "Germany" },
{ "CompanyName": "Ana Trujillo Emparedados y helados", "ContactName": "Ana Trujillo", "ContactTitle": "Owner", "Address": "Avda. de la Constitucin 2222", "City": "Mxico D.F.", "Country": "Mexico" },
{ "CompanyName": "Antonio Moreno Taquera", "ContactName": "Antonio Moreno", "ContactTitle": "Owner", "Address": "Mataderos 2312", "City": "Mxico D.F.", "Country": "Mexico" }
]
步骤2:在jsp的前端,网格行的数据被更改, 这些更改在临时数组中按如下方式推送。
//这里创建了一个全局数组,数据也发生了变化 //在网格的每一行中完成放入数组
var tempArray = new Array();
{
var data = $('#jqxgridreq').jqxGrid('getrowdata', args.rowindex);
var arr = $.makeArray(data);
tempArray.push(data);
}
以后跟着是> var json_string = JSON.stringify(tempArray); 这里,数据与创建json字符串时上面显示的示例数据相同。
步骤3:更改的数据作为AJAX调用发送到服务器,如下所示
[
{ "CompanyName": "IOK", "ContactName": "Maria Anders", "ContactTitle": "Sales Head", "Address": "Obere Str. 57", "City": "Berlin", "Country": "Germany" },
{ "CompanyName": "Dubiou", "ContactName": "Ana Trujillo", "ContactTitle": "Sales Manager", "Address": "Avda. de la Constitucin 2222", "City": "Mxico D.F.", "Country": "Mexico" }
]
它到达服务器端代码,我希望在发送时读取它,我得到以下错误:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING
请帮助并建议如何解决这个问题。
谢谢和问候 Ranchs
答案 0 :(得分:0)
它到达服务器端代码,我希望在发送时读取它 我得到以下错误:
在阅读服务器端之前,您是否正在将String
转换为JSONArray
?
JSONArray array = new JSONArray(json_data);
答案 1 :(得分:-1)
Gson除了要用POJO映射的键,例如
public class Test {
private List<Type> attr;
}
这个attr必须出现在json {“ attr ”中:[
{“CompanyName”:“IOK”,“ContactName”:“Maria Anders”,“ContactTitle”:“Sales Head”,“Address”:“Obere Str.57”,“City”:“Berlin”,“Country”: “德国”},
{“CompanyName”:“Dubiou”,“ContactName”:“Ana Trujillo”,“ContactTitle”:“销售经理”,“地址”:“Avda.de la Constitucin 2222”,“City”:“Mxico DF”,“国家“:”墨西哥“}
]}