現在、JQWidgets で Gson を使用しています。
ステップ 1: API を使用して gson を使用し、JQWidgets でサポートされている行として、以下の形式の json データをグリッドに送信します。
[
{ "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 文字列を作成する際に上記で示したサンプル データと同じです。
Step3: 以下のように、変更されたデータが 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
この問題を解決する方法を教えてください。
よろしくお願いします牧場