JSON:传回两个JSON对象作为响应,而不是传递带有标志的单个JSON对象来识别差异

时间:2017-06-19 17:06:09

标签: jquery json

我们有两种类型的列表需要从服务器传递到客户端,一种是受欢迎城市列表,另一种是非受欢迎城市列表。

我们的第一个选择是分别为流行和非流行城市发回不同的json对象,如:

{
    "Cities": {
        "PopularCities": [
            {"id":1, "name":"PopularCity1"},
            {"id":2, "name":"PopularCity2"}
        ],
        "NonPopularCities": [
            {"id":3, "name":"NonPopularCity1"},
            {"id":4, "name":"NonPopularCity2"}
        ]
    }
}

OR

以相同的JSON获取所有城市并使用旗帜区分流行和非流行,例如:

{
    "Cities": {
            {"id":1, "name":"PopularCity1", "isPopular": true},
            {"id":2, "name":"PopularCity2", "isPopular": true}
            {"id":3, "name":"NonPopularCity3", "isPopular": false},
            {"id":4, "name":"NonPopularCity4", "isPopular": false}
    }
}

哪种方法更好?

1 个答案:

答案 0 :(得分:0)

这个问题很模糊,因为两种方法都需要在使用前进行评估。如果我们按设计模式进行操作,则密钥应根据需要为元数据和值的名称。因此,方法1看起来像

{"Cities": [{
    "type":"Popular Cities",
    "cityList" :[
        {"id":1, "name":"PopularCity1"},
        {"id":2, "name":"PopularCity2"}
    ]},
   {"type":"Some Other Cities",
    "cityList" :[
        {"id":1, "name":"SomePopularCity1"},
        {"id":2, "name":"SomePopularCity2"}
    ]},
   {"type":"Non Popular Cities",
    "cityList" :[
        {"id":1, "name":"NonPopularCity1"},
        {"id":2, "name":"NonPopularCity2"}
    ]}
]}

第二种方法似乎使用了标志变量,它将再次计算每次过滤时间,这似乎不是一个好主意。