簡體   English   中英

排序Java腳本對象文字

[英]Sort Java Script Object literals

我繼承了一個使用JSON來執行一系列操作的項目,如每個對象文字所表示的那樣。 我沒有使用JSON的經驗,雖然符號是直截了當的,但我發現使用對象文字的情況不那么嚴重。

考慮以下文件:

[{
    "Name": "Hingle McCringleberry",
    "ID": "4"
},
{
    "Name": "Scoish Velociraptor Maloish",
    "ID": "1"
},
{
    "Name": "DGlester Hardunkichud",
    "ID": "3"
}]

使用Java,我想按ID對它們進行排序。 我看到這個線程談到實現JavaScript排序方法,但我不確定如何在實踐中這樣做。 我正在使用JsonFactoryJsonParser來讀取和迭代文件,但我需要對它們進行排序才能處理它們。

由於您使用Jackson來解析這些,我假設您必須將它們解析為具有ID和名稱的某種對象的List 如果是這種情況,只需編寫標准比較器即可 例如:

NamedObject.java:

public class NamedObject {
    // I'm using public fields instead of getters/setters for brevity,
    // since this is just sample code.

    @JsonProperty("ID")
    public int id;

    @JsonProperty("Name")
    public String name;
}

NamedObjectIdComparator.java:

public class NamedObjectIdComparator implements Comparator<NamedObject> {
    public int compare(NamedObject object1, NamedObject object2) {
        return object1.id - object2.id;
    }
}

然后,對對象列表進行排序:

List<NamedObject> objects = // parse using JsonParser
Collections.sort(objects, new NamedObjectIdComparator());

我對jackson庫知之甚少,但我確信jackson可以將JSON轉換為Java List對象(我想有些方法調用readValueXXX )。

獲得Java ListCollections.sort可以進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM