我有一个包含 JSON 对象数组的字符串。使用 Golang,我想从数组中的每个对象中删除一个或多个指定字段,然后打印字符串化的结果。我需要将此字段删除过程应用于多种不同的 JSON 输入格式,因此我不想使用模型。以下是一些骨架代码,其中包含一种示例输入形式和所需输出:
package main
import (
"fmt"
)
func functionDropSpecifiedFields(inputString string, fields []string) string {
var outputString string
// Need some logic here to remove each field in array 'fields'!
return outputString
}
func main() {
jsonArrayAsString := `[{"name":"Marlon","age":25,"created_at":"2025-02-10T08:51:14.615264Z"},{"name":"Wendy","age":31,"created_at":"2025-11-14T08:46:09.435264Z"}]`
fieldsToRemove := []string{"created_at"}
reducedString := functionDropSpecifiedFields(jsonArrayAsString, fieldsToRemove)
fmt.Println(reducedString)
// Should print: [{"name":"Marlon","age":25},{"name":"Wendy","age":31}]
}
functionDropSpecifiedFields 中的哪些逻辑可以实现这一点?
当然可以实现,首先将结果收集到类型切片中
interface{}
,然后将切片中的每个条目作为 进行处理map[string]interface{}
。这样,就可以进行编码/解码,而无需知道特定的对象类型https://go.dev/play/p/Trzdg-odw23