7

我正在尝试下面的代码....

public  String listToJsonString(String keyName, List<StyleAttribute> attrs) {
        JSONObject json = new JSONObject();
        json.accumulate(keyName, attrs);
        return json.toString();
    }

但是当我检查json变量时,它包含空值,如下所示

{“我的钥匙”:[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{} ,{},{},{},{},{},{},{}]}

当我检查attrs变量时,它包含 22 个元素数据。我在这里做错了什么?我只是将我的列表转换为 Json 对象并保存到数据库。我在用

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
4

2 回答 2

2

您可以使用以下代码

public String listToJsonString(List<StyleAttribute> attrs) {
        JSONObject jObject = new JSONObject();
        try {
            JSONArray jArray = new JSONArray();
            for (MyClass myObject: attrs) {
                JSONObject styleJSON = new JSONObject();
                styleJSON.put("name",myObject.getName());
                styleJSON.put("rollNumber", myObject.getRollNumber());

                jArray.add(styleJSON);
            }
            jObject.put("keyName", jArray);
        } catch (Exception jse) {
        }

        return jObject.toString();
    }

它将解决您的问题。

于 2013-04-19T12:28:04.227 回答
1

不确定这一点,但您列表中的对象可能是可序列化的。

另外,您使用什么库来管理 JSON?

编辑 :

所以 json-lib 就是这样!

我在 json-lib FAQ 中找到了这个:

Json-lib 从我的 bean 类创建空 JSONObjects,帮帮我!

Json-lib 使用 JavaBeans 约定来检查您的 bean 并创建 JSONObjects。如果 bean 的属性不符合约定,则生成的 JSONObject 将为空或半空。您必须为每个属性提供一个读/写方法对。

这是讨论 JavaBeans 约定的维基百科页面:

http://en.wikipedia.org/wiki/JavaBeans#JavaBean_conventions

希望对你有帮助!

于 2013-03-21T09:53:50.170 回答