問題タブ [upickle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - BooPickle と RocksDb を使用したシリアル化に余分なバイトが追加される
だから私は BooPickle を使用して、Scala クラスをシリアル化してから RocksDB に書き込みます。クラスをシリアライズするには、
私はこの暗黙のクラスを持っています
このメソッドtoStringEncoding
が必要なのは、BooPickle がキーの順序に関する RocksDb の要件にうまく対応する方法でケース クラスをシリアル化していなかったからです。次に、一連のキーと値のペアをいくつかの SST ファイルに書き込み、それらを RocksDb に取り込みます。しかし、データベースからキーを検索しようとすると、それらが見つかりません。
データベース内のすべてのキーを反復すると、キーが正常に書き込まれていることがわかりますが、余分なバイトがデータベース内のバイト表現に書き込まれます。たとえば、key.serialize
このようなものを出力する場合
私がデータベースで見つけるのは、このようなものです
余分な非ゼロ バイトは、バイト配列の最後のゼロ バイトを置き換えます。さらに、バイト配列のサイズが異なります。メソッドを呼び出すとserialize
、バイト配列のサイズは 512 ですが、データベースからキーを取得すると、サイズは 4112 になります。
json - scala ujson.read() は ujson.Obj を返します
Li Haoyi の ujson を使用して json 文字列を読み取ろうとしています。これは文字列です:
そして、これは私がそれを読んだ方法です:
しかし、戻り値の型はujson.Obj
であり、期待どおりではなくArr(ArrayBuffer(Obj)
、 を取得しようとすると が得jsonData(0)
られますjson.Value$InvalidData: Expected ujson.Arr
。
ujson オブジェクトを使用して upickle オブジェクトを作成しようとしましたが、作成できず、この初期エラーが原因であると思われるため、この質問をしています。
なぜこれが起こるのかについてのアイデアはありますか?どんな助けでも大歓迎です!前もって感謝します!!