【问题标题】:How to Use JSON Accumulate Method With List?如何在列表中使用 JSON 累积方法?
【发布时间】:2013-03-10 16:55:03
【问题描述】:

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

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

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

{"myKey":[{},{},{},{},{},{},{},{},{},{},{},{},{},{} ,{},{},{},{},{},{},{},{}]}

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

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

【问题讨论】:

    标签: java json list


    【解决方案1】:

    你可以使用下面的代码

    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();
        }
    

    它将解决您的问题。

    【讨论】:

      【解决方案2】:

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

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

      编辑:

      原来是 json-lib!

      我在 json-lib 常见问题解答中找到了这个:

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

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

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

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

      希望对您有所帮助!

      【讨论】:

      • 但该列表包含一个 Java bean
      • 如果您列表中的对象确实是遵守所有 JavaBeans 约定的 JavaBeans,我想不出其他任何东西。也许您可以发布您的 JavaBean 的代码?
      猜你喜欢
      • 2020-09-14
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多