如何以JSON格式表示数据列表?

时间:2013-09-14 20:30:29

标签: json list serialization jackson

我正在设计我的数据的JSON文档。以下是单个值(v),目前包含site-idprice-scoreconfidence-score

{
  "v" : {
    "site-id" : 0,
    "price-score" : 0.5,
    "confidence-score" : 0.2
  }
}

现在,我想在上面的JSON文档中添加类别列表。由于我将为单个值(v)设置多个类别,因此我提出了以下JSON文档 -

{
  "v" : {
    "site-id" : 0,
    "price-score" : 0.5,
    "confidence-score" : 0.2,
    "categories": [
          {
            "category-id": "123",
            "price-score": "0.5",
            "confidence-score": "0.2"
          },
          {
            "category-id": "321",
            "price-score": "0.2",
            "confidence-score": "0.4"
          }
    ]
  }
}

任何人都可以看看,如果我在上面的JSON文档中添加类别列表的方式看起来不错,请告诉我吗?或者有更好的方法做同样的事情吗?因为我不想在处理序列化和反序列化上述JSON文档时遇到问题。

1 个答案:

答案 0 :(得分:1)

我建议:

{
    "v" : {
        "site-id" : 0,
        "price-score" : 0.5,
        "confidence-score" : 0.2,
        "categories": {
            "123" : {
                "price-score": "0.5",
                "confidence-score": "0.2"
            },
            "321" : {
                "price-score": "0.2",
                "confidence-score": "0.4"
            }
        }
    }
}

这样,您可以轻松使用:

json.v.categories[id]

获取有关特定类别的信息,而不必写:

var the_category;
for (var i = 0; i < json.v.categories.length; i++) {
    if (json.v.categories[i]['category-id'] == id) {
        the_category = json.v.categories[i];
        break;
    }
}

另一个建议:在密钥中使用_而不是-(如果您愿意,可以使用camelCase),因为连字符会阻止您使用.表示法访问元素(请注意我有写上['category-id']而不是.category-id