0

我有一个 JSON 对象,它转换为字符串并保存到数据库中。但是当我试图取回它时,它抛出异常。我的对象是这样的......

{"COLUMN":["Type","Sub Type","F.P.","P.P.","Process","Due To Start"]}

我们如何才能以正常形式获取数据?

我的Java代码是......

JSONObject obj = new JSONObject();
        JSONArray the_json_array = obj.getJSONArray(userReorderOption);
        int size = the_json_array.size();
        ArrayList<JSONObject> arrays = new ArrayList<JSONObject>();
        for (int i = 0; i < size; i++) {
            JSONObject another_json_object = the_json_array.getJSONObject(i);
            arrays.add(another_json_object);
        }

我得到了例外....

net.sf.json.JSONException: JSONObject["{\"TASKLIST_COLUMN_REORDER\":[\"Type\",\"Sub Type\",\"F.P.\",\"P.P.\",\"Process\",\"Due To Start\"]}"] is not a JSONArray.

这是java代码我如何创建JSON对象并保存到数据库中......

String userReorderSelection;  
  Set set = new LinkedHashSet(userReorderSelection);


        JSONObject json = new JSONObject();
        json.accumulate("COLUMN", set);
        saveJSONObj("PrimaryKeyColumn", json.toString());
4

2 回答 2

2

谢谢 Tichodroma,但正如我所说,我正在使用net.sf.json.JSONObject类及以上的东西,我们也可以从这个类中实现。我做了什么来解决上述问题?...请查看 Java 代码...

JSONObject jsonObj = new JSONObject();
        JSONObject obj  = jsonObj.fromObject(userReorderOption);
        JSONArray columnName = (JSONArray) obj.get("COLUMN");

        for (int i = 0; i < columnName.size(); i++) {
            System.out.println(columnName.getString(i));

        }

这段代码在我的 Json Jar**(net.sf.json)** 中对我来说很好用

于 2012-10-09T11:13:10.303 回答
1

您的 JSON 不是JSONArray.

JSONArray 是有序的值序列。

你有一个JSONObject.

JSONObject 是名称/值对的无序集合。

编辑:

使用来自 的 JSON 实现org.codehaus.jettison.json,您可以执行以下操作:

String json = "{\"COLUMN\":[\"Type\",\"Sub Type\",\"F.P.\",\"P.P.\",\"Process\",\"Due To Start\"]}";

JSONObject obj = new JSONObject(json);
JSONArray column = (JSONArray) obj.get("COLUMN");

for (int i = 0; i < column.length(); i++) {
    final String field = column.getString(i);
    System.out.println(field);
}

结果:

Type
Sub Type
F.P.
P.P.
Process
Due To Start
于 2012-10-09T07:15:56.253 回答