Я пишу код в GoLang.В рамках этого я сгенерировал массив bson, запросив коллекцию в MongoDB, используя github.com/mongodb/mongo-go-driver/mongo
, github.com/mongodb/mongo-go-driver/bson
.Мне нужно написать этот ответ на http.ResponseWriter.Когда я пытаюсь сделать это, используя json.Marshal(BsonArrayReceived)
, ответ, записанный в ResponseWriter, имеет структуру документа, отличную от структуры документа JSON, хранящейся в MongoDB.Итак, я хотел знать правильный способ записи результатов запроса в ResponseWriter.
Допустим, есть два документа, которые соответствуют моим критериям запроса - кошка, собака
cat := bson.D{{"Animal", "Cat"}}
dog := bson.D{{"Animal", "Dog"}}
Итак, результирующий массив bson, который я создаю, будет выглядеть примерно так:
response := bson.A
response = append(response, cat)
response = append(response, dog)
Мой текущий код, который не работал, ниже
writer.Header().Set("Content-Type", "application/json")
json.err := json.Marshal(response)
writer.Write(json)
Ожидаемый результат будет
[{"Animal":"Cat"},{"Animal":"Dog"}]
Фактический вывод, который я получаю,
[{{"Key":"Animal"},{"Value":"Cat"}},{{"Key":"Animal"},{"Value":"Dog"}}]
Так что мой вопросКак мне написать в ResponseWriter, чтобы сохранить структуру массива документов JSON.Я предпочитаю не использовать пользовательские Marshal / UnMarshal, так как это означает, что решение является конкретным и требует изменений, если я изменю структуру JSON