要求:需要根据用户传入的 jsonStr 中的name
和user_id
的顺序拼接其值。
代码:
package main
import (
"encoding/json"
"fmt"
"reflect"
)
func main() {
jsonStr := `{"name":"tom","user_id":"123"}` // 这是传入的参数,name 与 user_id 顺序不能确定先后
var str string
m := make(map[string]interface{})
_ = json.Unmarshal([]byte(jsonStr), &m)
v := reflect.ValueOf(m)
keys := v.MapKeys()
for _, key := range keys {
v1 := v.MapIndex(key).Interface().(string)
str += v1
}
fmt.Println(str)
// 由于 map 无序,不能固定输出:tom123
// 如何保持与 json 中键一致,固定输出?
// 比如若 json_str := `{"user_id":"123""name":"tom"}` 则输出 123tom
}
在线运行: https://play.golang.org/p/_ZMfsISpKWz
还请大佬们赐教,感激不尽。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.