sql >> Database teknologi >  >> NoSQL >> MongoDB

Deserialisering af MongoDB BSON

For de interesserede fandt jeg løsningen på mit problem. Det viser sig, at BSON-formatet kan parses ligesom JSON ved hjælp af Googles GSON-driver. Den ene vanskelige del, som jeg skulle håndtere, var at finde en måde at gemme indlejrede felter i min skabelonklasse. Måden at tillade GSON at parse indlejrede dokumenter er at erklære statiske indre klasser i din skabelonklasse. Her er et eksempel:

public BSONObject {
   // Private fields
   private int foo;
   private String bar;

  // Constructors
  public BSONObject() {}

  // Static inner subclasses
  private Widget widget;
  private Duck quack;

  // Getters & Setters for outer class
  public int getFoo() {...}
  public String getBar() {...}
  public Widget getWidget() {...}
  public Duck getDuck() {...}

  // Static inner class declarations
  public static Widget {
     // include vars & getters/setters
  }

osv.

Erklæring af skabelonklassen efter ovenstående ramme gav mig mulighed for nemt at parse MongoDB's formatering ved hjælp af et par linjer kode fra GSON-biblioteket. Bemærk venligst, at jeg sammenkædede et "\n" til hver post, når jeg returnerede data fra min webservice for at adskille hvert dokument i Mongos BSON-svar:

public String getNestedField() {
   Gson gson = new Gson();
   String [] split = response.split("\n");
   JsonParser p = new JsonParser();
   String json = split[0];
   BSONObject b = gson.fromJson(p.parse(json), BSONObject.class);
   return b.getWidget().getField();
}



  1. Hvordan udfører man mongo-kommandoer fra bash?

  2. MongoDB $bsonSize

  3. mongo-go-driver find et dokument ved _id

  4. Tjek om MongoDB PHP Driver er installeret