尝试执行排序但输出似乎不对输出进行排序

时间:2017-10-15 10:45:08

标签: groovy

我的Groovy脚本中有一些排序问题,我不知道为什么它没有按预期工作。

以下是我要排序的JSON:

norm(out, out-matmul) 0.000511952
norm(out, out-scan) 0.0

我试图通过'policyid'对这个JSON进行排序,但它似乎没有对它进行排序,我不知道为什么它不是我的代码似乎是正确的:

以下是我想要输出的内容:

{
   "aaa":    [
            {
         "aaa1": xxx,
         "aaa2": "xxx",
         "bbb": [         {
            "bbb1": xx,
            "bbb2":             [
               1,
               2
            ],
            "ccc": [],
            "ccc1": xxx
         }]
      },
           {
         "aaa1": xxx,
         "aaa2": "xxx",
         "bbb": [         {
            "bbb1": xx,
            "bbb2":             [
               1,
               2
            ],
            "ccc": [],
            "ccc1": xxx
         }]
      }
         ]
      }
   ]
}

1 个答案:

答案 0 :(得分:0)

您的代码中存在拼写错误:

log.info testsort.sort{a,b -> a.policyid <=> b.policyid} 

您访问policyid字段时应该policyId。将提到的行更改为:

log.info testsort.sort{a,b -> a.policyId <=> b.policyId} 

您将获得输出:

[policyId:31, passengerSeqIds:[2], optionalPassengerSeqIds:[], cost:25]
[policyId:34, passengerSeqIds:[1], optionalPassengerSeqIds:[], cost:40]
[policyId:35, passengerSeqIds:[1, 2], optionalPassengerSeqIds:[], cost:72]