É mais do que provável que existam caracteres inválidos nos campos/chaves do seu documento.
Por exemplo, você não pode ter um ponto
.
ou um cifrão $
em seus nomes de campo. Se você enviar a saída do seguinte, posso ajudar mais.
System.out.println(data);