Вопрос пользователя:
Ответ нейросети:
Проблема в том, что в функции splitJSONByClass вы создаете карту result, где значениями являются срезы байтов ([]byte), а затем пытаетесь добавить новый элемент в существующий срез байтов. Вместо этого вам нужно создать новый срез байтов для каждого класса и добавлять в него новые элементы JSON.
Вот исправленный код:
package main
import (
"encoding/json"
"errors"
)
func splitJSONByClass(jsonData []byte) (map[string][]byte, error) {
var data []map[string]interface{}
err := json.Unmarshal(jsonData, &data)
if err != nil {
return nil, err
}
result := make(map[string][]byte)
for _, item := range data {
class, ok := item["class"].(string)
if !ok {
return nil, errors.New("Invalid class type")
}
jsonItem, err := json.Marshal(item)
if err != nil {
return nil, err
}
if _, ok := result[class]; !ok {
result[class] = []byte{}
}
result[class] = append(result[class], jsonItem...)
}
return result, nil
}
Этот код создает новый срез байтов для каждого класса и добавляет в него соответствующие элементы JSON. Теперь ваш тест должен проходить успешно.
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.