【问题标题】:Sorting a Map with JSON data as values [duplicate]以 JSON 数据为值对地图进行排序 [重复]
【发布时间】:2018-11-08 07:12:56
【问题描述】:
{"5eaa9ce8": {
            "Id": "1958208",
            "priority": 0
             },
"5eaa9bs8": {
            "Id": "1958208",
            "priority": 2
             },
"6eaa9ce8": {
            "Id": "1958208",
            "priority": 1
             }
}

需要根据key的优先级对这个Map进行排序。

并且需要的输出是 { “5eaa9bs8”:{ “身份证”:“1958208”, “优先级”:2 }, “6eaa9ce8”:{ “身份证”:“1958208”, “优先级”:1 }, “5eaa9ce8”:{ “身份证”:“1958208”, “优先级”:0 } }

【问题讨论】:

    标签: java json sorting collections treemap


    【解决方案1】:

    Json 对象不会保持顺序,为了保持顺序使用数组

    第 1 步:将您的对象转换为数组:

    keys = Object.keys(yourObj)
    for(let i=0;i<keys.length;i++){
       yourArr.push(keys[i])
    }
    

    第 2 步:对数组进行排序:

    function compare(a,b) {
      aKey = Object.keys(a)[0];
      bKey = Object.keys(b)[0];
      if (a[akey].priority < b[bKey].priority)
        return -1;
      if (a[aKey].priority > b[bKey].priority )
        return 1;
      return 0;
    }
    yourArr.sort(compare)
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2018-02-18
      • 2015-11-07
      • 2015-11-07
      • 2013-11-08
      相关资源
      最近更新 更多