~~~
求下面的代码 有问题, 我需要 一个转换JSON 一个反序列化到MAP 方便修改值,思路这样的
比如生成JSON值
var a map[string]interface{}
a["code"]="100"
a["msg"]="ok"
result := JSON_Serialize(a)
//这样result得到一串JSON值了
================
反序列化
从数据库或则字符串获取得到一串JSON值
bb := `{"Code":"-1","Msg":"code error!"}`
result2 :=JSON_Deserialize(bb)
//然后修改一些值 修改完毕再转换JSON即可
result2["Code"]=="200"
result2["Msg"]="no123"
result3 := JSON_Serialize(result2)
~~~
~~~
func JSON_Serialize(obj interface{}) (mapOBJ map[string]interface{}, err error) {
b, err := json.Marshal(obj)
if err != nil {
return nil, err
}
return b
}
func JSON_Deserialize(obj interface{}) (mapOBJ map[string]interface{}, err error) {
var result map[string]interface{}
if err := json.Unmarshal(obj, &result); err != nil {
return nil, err
}
return result, nil
}
~~~
<a href="/user/zhanyiwp" title="@zhanyiwp">@zhanyiwp</a>
大牛 因为我只要 转换JSON和 修改JSON后再转换 的2个函数 我大概按照你的试了下
~~~
jsonT := `{"Code":"-1","Msg":"code error!"}` //必须这个取出来要修改的JSON生成好的
Map2, _ := JSON_Deserialize([]byte(jsonT)) //反序列化到MAP中
Map2["Code"] = "10000"
Map2["Msg"] = "OKOK123" //进行修改 或则新增个
Map2["Return"] = "成功信息" //比如新增了一个值
//然后到了下面这不 将上面修改好的MAP值 重新转换 JSON值,下面的是【错误的】我乱写的 求指正啊
aaa := JSON_Deserialize(Map2)
fmt.Fprintln(w, aaa)
~~~
#12
更多评论