0

JSONを使用して、各オブジェクトリテラルで示される一連の操作を実行するプロジェクトを継承しました。私はJSONの経験がまったくなく、表記法は単純ですが、オブジェクトリテラルの操作はそれほど簡単ではありません。

次のファイルについて考えてみます。

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

Javaを使用して、IDで並べ替えたいと思います。JavaScriptのソートメソッドの実装について説明しているこのスレッドを見ましたが、実際にこれを行う方法がわかりません。JsonFactoryJsonParserを使用してファイルの読み取りと反復を行っていますが、処理する前にそれらを並べ替える必要があります。

4

2 に答える 2

2

これらを解析するためにJacksonを使用しているので、IDと名前を持つある種のオブジェクトのリストにそれらを解析する必要があると思います。その場合は、標準のコンパレータを作成するだけです。例えば:

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());
于 2013-02-14T17:53:29.337 に答える
0

ジャクソンライブラリについてはよくわかりませんが、ジャクソンはJSONをJavaListオブジェクトに変換できると確信しています(一部のメソッドはreadValueXXX私が推測します)。

Javaを入手するListと、Collections.sortで並べ替えを実行できます。

于 2013-02-14T17:54:03.953 に答える