2016-10-25 4 views
0

Как преобразовать вложенную BSON к плоскому BSON в Java или Скалевложенная BSON к плоскому BSON в Java или Скале

Входной BSON

{ 
    a: 10, 
    b: { 
    c: 20, 
    d: { 
     e: "a" 
    } 
    } 
} 

Выходной BSON

{ 
    a: 10, 
    b_c: 20, 
    b_d_e: "a" 
} 

Проблема, с которой я столкнулся, состояла в

{ 
    "_id": { 
     "$oid": {} 
    }, 
    "dateField": { 
     "$date": {} 
    } 
} 

, где я хотел идентификатор в виде строки и DateField как дата

+1

Не хотите сказать JSON? ... и что вы пробовали? – Matyas

+0

Нет BSONObject. http://api.mongodb.com/java/2.5/org/bson/BSONObject.html. BSONObject должен сопоставить метод, используемый для итерации. –

ответ

0

Вы можете использовать https://github.com/wnameless/json-flattener библиотеку.

new JsonFlattener(json).withSeparator('_').flatten() 
+0

Это хорошо, но я хотел что-то конкретное для BSON, поскольку BsonObject имеет собственную структуру хранения. Скажи: { } –

+0

{ "_id": { "время": "", "машина": "" }, } когда объект BSON обрабатывается как JSON идентификатор должен представлять в строке –