【问题标题】:JSON Java add empty array to JSON objectJSON Java 向 JSON 对象添加空数组
【发布时间】:2012-08-21 15:25:05
【问题描述】:

我遇到了以下问题。

我的后端(Java sevlet)从数据库返回来自 MongoDB 的单个记录/文档的所有字段。这个 JSON 字符串被发送到执行一些魔法的前端。

这是通过以下代码完成的:

public String getDocumentJSON(int id) {
    DBCollection collection = database.getCollection("People");
    BasicDBObject query = new BasicDBObject();
    query.put("id", id);
    DBCursor cur = collection.find(query);
    DBObject one = cur.next();  
    return JSON.serialize(one);
}

前端需要一个字段:photos[]

使用此字段创建新记录/文档。 (这是一个带有照片文件名的数组)。较旧的记录/文档没有此字段,这会导致前端中断。

为了防止这种情况,我想在将其发送到前端之前将数组:photos[] 添加到 JSON。但我不确定如何将此数组添加到 JSON。

最好我的代码会检查 JSON 或 DBObject 是否有字段 photos[],如果有,那么如果它不包含该字段,则什么也不做。然后添加。

前端只需要photos[],即使它是空的也没问题。

我宁愿在后端解决这个问题。

【问题讨论】:

    标签: java arrays json


    【解决方案1】:

    我需要做类似的事情,并发现一个小的替代接受的答案是使用JSONArray

    one.put("photos", new JSONArray());
    

    【讨论】:

      【解决方案2】:

      这样的事情应该可以工作:

      DBObject one = cur.next();  
      
      if (one.get("photos") == null)
        one.put("photos", new Object[0]);
      
      return JSON.serialize(one);
      

      【讨论】:

      • 嗨,非常感谢,这成功了!令人惊讶的是事情可以如此简单。 :)
      猜你喜欢
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2011-03-31
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多