我尝试使用此代码来解析它,但
1 2 3 4 5 6 7 8 9 | v := reflect.ValueOf(request.URL.Query()) i := v.Interface() content, err := i.(map[interface{}]interface{}) // Do some operations jsonString, _ := json.Marshal(content) // Add to DB |
为什么它为空? 我也觉得太通用了吗?
您是否认为过于笼统? 当然可以 我想不出集合类型需要更改的任何原因...追加所需内容,将其写入数据库。 没有什么可以防止这种afaik?
- 处理真正动态的JSON的正确方法是什么?
-
@Thellimist
map[string]interface{} 可能是最流行的方式。 就我个人而言,我总是避免动态形式的解组。 我很自信地说没有json是真正动态的。 总有一个模式,它可能很灵活。 在您的代码中从来没有必要进行反射,只有在真正的解组器中才需要进行反射(在这种情况下为encoding / json,但对于其他Go语言和其他语言的库也是如此)。 另外,如果json是变体,我可以尝试TypeA 然后B 然后C 来耗尽可能的模式,最坏的情况下我会这样做。 提前解决我的错误。