Go net/http获取body中json格式数据

package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
) type AutotaskRequest struct {
RequestID string `json:"requestid"`
Clone CloneModel `json:"clone"`
Push PushModel `json:"push"`
} type CloneModel struct {
//TODO
//"Method": string `json:"ceph"`
RequestID string `json:"requestid"`
CallbackURL string `json:"callbackurl"`
} type PushModel struct {
RequestID string `json:"requestiD"`
CallbackURL string `json:"callbackuRL"`
IP string `json:"remoteip"`
Port int `json:"remoteport"`
User string `json:"user"`
} func test(w http.ResponseWriter, r *http.Request) {
// r.ParseForm()
defer fmt.Fprintf(w, "ok\n") fmt.Println("method:", r.Method)
body, err := ioutil.ReadAll(r.Body)
if err != nil {
fmt.Printf("read body err, %v\n", err)
return
}
println("json:", string(body)) var a AutotaskRequest
if err = json.Unmarshal(body, &a); err != nil {
fmt.Printf("Unmarshal err, %v\n", err)
return
}
fmt.Printf("%+v", a) } func main() {
http.HandleFunc("/test", test)
http.ListenAndServe(":8888", nil)
}

  客户端所传递参数如下:

{
"requestid": "xxxxx",
"clone": {
"method": "ceph",
"callbackurl": "xxx",
"remoteip": "192.168.2.1",
"remoteport": 8080,
"user": "xxx",
"pass": "xxx",
"path": "xxx",
"filename": "xxx"
},
"optimize": {
"callbackurl": "xxx",
"filter": {
"k1": true,
"k2": false
},
"trim": true,
"progressive": true,
"quality": 100,
"colorNum": 256,
"gifOptLevel": 2,
"svgo": true,
"guetzli": false,
"css_rewrite": false,
"js_rewrite": false
},
"push": {
"method": "ceph",
"callbackurl": "xxx",
"remoteip": "192.168.2.1",
"remoteport": 8080,
"user": "xxx",
"pass": "xxx",
"path": "xxx",
"filename": "xxx"
}
}

json传递的参数中,服务端有的没有对应字段

Go net/http获取body中json格式数据的更多相关文章

  1. python中json格式数据输出实现方式

    python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info[&q ...

  2. jmeter 导入csv数据中json格式数据取值不完整

    1.jmeter中添加csv数据文件时,数据是json格式 2.jmeter中执行取值发现只取了一部分 分析原因,json格式数据,中间有逗号,而csv是根据逗号来分割的,这回导致我们取值错位. 解决 ...

  3. c# 通过URl 获取返回的json格式数据

    方法一 http://blog.csdn.net/angle_greensky110/article/details/52209497 protected string GetJson(string ...

  4. dataTables获取当前行json格式数据

    装载表格数据 $(document).ready( function () { //页面加载后装载表格数据 var table = $('#mytable').DataTable( { "s ...

  5. js中JSON格式数据的转化

    JSON.parse(STRING) => OBJECT JSON.stringify(OBJECT) => STRING

  6. 9.SpringMVC和json结合传递数据 && 10.SpringMVC获取controller中json的数据

  7. ajax中json格式数据如何朝后端发送数据

  8. iOS开发之JSON格式数据的生成与解析

    本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据? ...

  9. 转载 -- iOS开发之JSON格式数据的生成与解析

    本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据? ...

随机推荐

  1. 清理elasticsearch的索引

    curl -XDELETE 'http://172.16.1.16:9200/logstash-2013.03.*' 清理掉了所有 3月份的索引文件,其中*是通配符 下面是主页上的详细介绍,其他部分可 ...

  2. java 常量 因为常量不依赖对象 所以一般都会将常量设置为 类属性

  3. 使用URLConnection发送http请求实现简单爬虫(可以配置代理)

    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...

  4. 【HDU5469】Antonidas(点分治,字符串哈希)

    [HDU5469]Antonidas(点分治,字符串哈希) 题面 HDU Vjudge 题解 啊哈?什么垃圾一眼点分治+Hash判断,哈哈哈哈哈,让我来码码码. 诶,怎么WA了.改改改改改. 诶,怎么 ...

  5. 【BZOJ4035】数组游戏(博弈论)

    [BZOJ4035]数组游戏(博弈论) 题面 BZOJ 洛谷 题解 很明显是一个翻硬币游戏的变形,因此当前局面的\(SG\)函数值就是所有白格子单独存在的\(SG\)函数的异或和. 那么,对于每一个位 ...

  6. 一步步创建第一个Docker App —— 1. 背景介绍

    原文:https://docs.docker.com/engine/getstarted-voting-app/#/docker-stacks-and-services 你将会学习什么    本文创建 ...

  7. Mysql基本的一些查询操作

    /*查询选修课程‘3-105’且成绩在60到80之间的所有记录.*/SELECT * FROM result WHERE CNO='3-105' AND GRADE > 60 AND GRADE ...

  8. android studio 卡慢的问题(android studio 3.0)

    http://www.jianshu.com/p/0228b7d017bb 想体验一下android studio 3.0的canary版,主要是学习Kotlin.创建项目后,下载相关文件一直不成功. ...

  9. bzoj : 4504: K个串 区间修改主席树

    4504: K个串 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 268  Solved: 110[Submit][Status][Discuss] ...

  10. Codeforces Round #552 (Div. 3) 题解

    Codeforces Round #552 (Div. 3) 题目链接 A. Restoring Three Numbers 给出 \(a+b\),\(b+c\),\(a+c\) 以及 \(a+b+c ...