我有参数
id_user
phone_number
我想解码到我的结构
type User struct{
IDUser int `json:"id_user"`
PhoneNumber string `json:"phone_number"`
}
是否可以解码为struct?我使用gorilla架构。我的代码:
func User(w http.ResponseWriter, r *http.Request){
var decoder = schema.NewDecoder()
var user User
if err := r.ParseForm(); err != nil {
fmt.Println(err)
}
err := decoder.Decode(&user, r.PostForm)
if err != nil {
fmt.Println(err)
}
respBody, err := json.Marshal(user)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
w.Write(respBody)
}
我输入id_user = 1和phone_number = qwerty。但结果是id_user = 0和phone_number =""。
答案 0 :(得分:1)
我认为你应该修改你的标签:
type User struct{
IDUser int `json:id_user`
PhoneNumber string `json:phone_number`
}
到此:
type User struct{
IDUser int `json:"id_user"`
PhoneNumber string `json:"phone_number"`
}
因此,您应该在标记名称中使用引号。
答案 1 :(得分:1)
如果您提到的两个字段是查询参数,您可以像这样直接读取它:
<?php
$holiday = array(
'2017-12-16' => 'Victory Day of Bangladesh',
'2017-12-25' => 'Christmas'
);
$i = 0;
$work_day = '2017-12-26';
while($i != 7)
{
$work_day = date('Y-m-d', strtotime('-1 day', strtotime($work_day)));
$day_name = date('l', strtotime($work_day));
if($day_name != 'Saturday' && $day_name != 'Sunday' && !isset($holiday[$work_day]))
{
echo $work_day."\n";
$i++;
}
}
?>
否则您可以直接在api有效负载中传递User结构并直接执行payLoad解码,如下所示
COV.reset_index().rename(columns = dict(level_0 = "index", level_1 = "variable"), inplace = True)
DF2m = pd.melt(DF2.reset_index(), id_vars = "index").sort_values("index")
MDF = pd.merge(COV, DF2m, on=["index", "variable"])
VAR = MDF.groupby("index").apply(lambda x: np.dot(np.dot(x["value"], np.matrix([x["X"], x["Y"]])), x["value"])[0,0])
答案 2 :(得分:0)
如果你想直接将它们解码成一个结构而不需要一个一个地获取字段的值,那么你可以使用github.com/gorilla/schema
。请参阅this question。