1

我正在使用 jquery.sheet 插件,它接受JSON. 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库来解析。但我不知道该怎么做。

4

1 回答 1

2

严格来说,您所指的示例不是有效的JSON,例如,它在字段 id 周围缺少“”,如metadata[根据 www.json.org 中定义的 JSON][ http://json.org/]

出于这个原因,我建议在将它传递给您的Java(例如 servlet)之前,您应该对该对象进行字符串化,例如如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
}

JSONArrayJSONObject取自这里。

图书馆的 jar 在这里可用。

gson如果你喜欢,你可以使用。尽管在这种特殊情况下,这个库就足够了。gson如果我有一个对应JSON字符串的 bean 对象,我个人会使用,否则json.org就绰绰有余了。

于 2012-05-24T16:53:08.080 回答