-1

いくつかの JSON オブジェクトを MongoDB コレクションに保存し、Mongo jar と Java を使用して全文検索を行い、以下のコードを使用して DB フィールドの 1 つを抽出しています。

String tags2=dbo.getString("Tags");

結果:

[["pdf","java","c++"]["perl","pdf","c"]["java","c++"]]

私の要件は、すべての単語を分割して重複を削除することです。次の出力が必要です。

pdf
java
c++
c
perl

これを取得する方法を教えてください。

4

3 に答える 3

0

そのためには、 GSONなどのさまざまなライブラリが役立ちます。

int の例:

int[] ints2 = gson.fromJson("[1,2,3,4,5]", int[].class); 

あなたの例は次のように解決されます:

String tags2 = "[[\"pdf\",\"java\",\"c++\"],[\"perl\",\"pdf\",\"c\"],[\"java\",\"c++\"]]"; 
// added commas between the arrays to make sure the JSON is valid
// your code: String tags2=dbo.getString("Tags");
Set<String> elems = new HashSet<String>();
JsonElement rootJSonElement  = new JsonParser().parse(tags2);
for (JsonElement jsonElement : rootJSonElement.getAsJsonArray()) {
    for (JsonElement innerJsonElement : jsonElement.getAsJsonArray()) {
        elems.add(innerJsonElement.getAsString());
    } 
}
System.out.println(elems);
于 2013-07-12T11:32:51.267 に答える