0

yaml ファイル (私が制御できないサードパーティのファイル) があります。これをmongodbに入れる必要があります。しかし、コレクションに挿入しようとすると、以下の例外が発生します

java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String

snakeyaml を使用して、yaml をマップに変換しています。yaml のネストされた構造の 1 つは、二重値としてキーを持ちます。これが、mongo db で混乱を引き起こしていると思います。

mongo-java-driver-2.11.3 を使用して mongo とのインターフェースをとっています

これが私のyamlファイルのサンプルです

persons:
  - 1st relative:
      name: Alice
      sons:
        - 0:
            name: Alice First son
        - 0.2:
            name: Alice Second son
        - 0.3:
            name: Alice Third son
        - 0.4:
            name: Alice Fourth son
        - 0.5:
           name: Alice Fifth son

そして、これがmongoに挿入する私の簡単なコードです

 Yaml yaml = new Yaml();
        Map<String, Object> object =  (Map<String, Object>) yaml.load(new FileInputStream\\test.yaml")));
        coll.insert(new BasicDBObject(object));

これを回避する方法についてのアイデアは大歓迎です

ありがとうK

4

1 に答える 1

0

どうやら、mongo-java-driver-2.10.0 を使用したところ、この問題は解消されたようです。私のプレイバージョンは2.10.0であるため、そのバージョンに移動する必要がありました。

なぜ消えてしまったのか戸惑っていますが、もう問題ではなくなったことを嬉しく思います.

于 2013-11-09T01:10:50.987 に答える