Вопрос пользователя:
Ответ нейросети:
package main
import ( "encoding/json" "fmt" )
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 := item["class"].(string)
if _, ok := result[class]; !ok {
result[class] = []byte("[]")
}
jsonList, err := json.Marshal(append(parseJSONList(result[class]), item))
if err != nil {
return nil, err
}
result[class] = jsonList
}
return result, nil
}
func parseJSONList(jsonData []byte) []map[string]interface{} { var data []map[string]interface{} err := json.Unmarshal(jsonData, &data) if err != nil { return nil }
return data
}
func main() {
jsonData := []byte([ {"class": "A", "name": "Alice"}, {"class": "B", "name": "Bob"}, {"class": "A", "name": "Alex"} ]
)
result, err := splitJSONByClass(jsonData)
if err != nil {
fmt.Println("Error:", err)
return
}
for class, jsonList := range result {
fmt.Printf("Class: %s\nJSON List: %s\n", class, jsonList)
}
}
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.