2012-05-24 42 views
1

我正在使用接受JSON的jquery.sheet插件。該JSON格式爲:如何解析Java中的jquery.sheet的JSON?

[ 
    { //repeats 
     metadata: { 
      columns: Column_Count, 
      rows: Row_Count, 
      title: '' 
     }, 
     data: { 
      r{Row_Index}: { //repeats 
       c{Column_Index}: { //repeats 
        value: '', 
        style: '', 
        width: 0, 
        cl: {Classes used for styling} 
       } 
      } 
     } 
    } 
]; 

一個簡單的例子可能是:

[ 
    { 
     metadata: { 
      columns: 1, 
      rows: 1, 
      title: 'Private Limited' 
     }, 
     data: { 
      r0: { 
       c0: { 
        value: 'A', 
        style: '', 
        width: 0 
       } 
      } 
     } 
    } 
] 

我需要解析此JSONJava?我知道我可以使用谷歌的gson庫進行分析。但我不知道該怎麼做。

+0

不好的一點是行和列名稱不一致,r0,r1,r2,c0,c1,c2等 – user960567

回答

2

嚴格地說,您所指的樣本不是有效的JSON,例如,它缺乏「」周圍場ID作爲metadata [根據JSON在www.json.org定義] [http://json.org/]

爲此我會建議你將它傳遞給你的Java(如小服務程序)之前,您應該將此對象串聯起來,例如as shown in this answer。這樣你就可以確定這是一個有效的JSON。稍後使用jQuery將它發送給servlet。在您的Java代碼中,您使用下面的代碼來讓您的json字符串變成JSONArray,您將在其中進一步操作。

String json = request.getParameter(param); 
JSONArray jsonArray = new JSONArray(json); 

然後你可以遍歷它的元素,就好像它是任何其他集合一樣。

for (int i = 0; i < jsonArray.length(); i++) { 
    JSONObject jsonObject = jsonArray.getJSONObject(i); 
    //work with the jsonObject 
} 

The JSONArray and JSONObject classes are taken from here.

The jar for the library is availalbe here.

如果你喜歡,你可以使用gson。雖然在這個特殊情況下,這個庫已經足夠了。我個人使用gson,如果我有一個相應的JSON字符串的bean對象,否則json.org是綽綽有餘。

+0

感謝您的回答。 – user960567