Go net/http获取body中json格式数据
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格式数据的更多相关文章
- python中json格式数据输出实现方式
python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info[&q ...
- jmeter 导入csv数据中json格式数据取值不完整
1.jmeter中添加csv数据文件时,数据是json格式 2.jmeter中执行取值发现只取了一部分 分析原因,json格式数据,中间有逗号,而csv是根据逗号来分割的,这回导致我们取值错位. 解决 ...
- c# 通过URl 获取返回的json格式数据
方法一 http://blog.csdn.net/angle_greensky110/article/details/52209497 protected string GetJson(string ...
- dataTables获取当前行json格式数据
装载表格数据 $(document).ready( function () { //页面加载后装载表格数据 var table = $('#mytable').DataTable( { "s ...
- js中JSON格式数据的转化
JSON.parse(STRING) => OBJECT JSON.stringify(OBJECT) => STRING
- 9.SpringMVC和json结合传递数据 && 10.SpringMVC获取controller中json的数据
- ajax中json格式数据如何朝后端发送数据
- iOS开发之JSON格式数据的生成与解析
本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据? ...
- 转载 -- iOS开发之JSON格式数据的生成与解析
本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据? ...
随机推荐
- m3u8 player
m3u8 player m3u8 是一种基于 HTTP Live Streaming 文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成.目前 由 Apple.inc 率先提出的 ...
- Java中split的对象被特殊字符(.或|)分隔
在Java中,一个String对象被一些特殊字符分隔时,可以使用split()方法,生成一个String[],然后进行其他的操作,就像下面这样: String str = "a1_b1_c1 ...
- Nginx+Tomcat搭建高性能负载均衡集群--Windows本地测试版
链接:http://www.cnblogs.com/wbyp/p/6860744.html
- 【刷题】BZOJ 2816 [ZJOI2012]网络
Description http://www.lydsy.com/JudgeOnline/upload/zjoi2012.pdf Solution 维护树上联通块的信息,支持动态加边删边 LCT 总共 ...
- 【刷题】BZOJ 5008 方师傅的房子
Description 方师傅来到了一个二维平面.他站在原点上,觉得这里风景不错,就建了一个房子.这个房子是n个点的凸多边形 ,原点一定严格在凸多边形内部.有m个人也到了这个二维平面.现在你得到了m个 ...
- 【BZOJ4804】欧拉心算
Description 给定数字\(n\)(\(n\le 10^7\)),求: \[ \sum_{i=1}^n\sum_{j=1}^n\varphi(\gcd(i,j)) \] 多组数据输入,数据 ...
- BZOJ2671 Calc 【莫比乌斯反演】
题目链接 BZOJ2671 题解 令\(d = (a,b)\),\(a = dx,b = dy\) 那么有 \[ \begin{aligned} d(x + y) | d^2xy \\ (x + y) ...
- BZOJ 4316: 小C的独立集 解题报告
4316: 小C的独立集 Description 图论小王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨. 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点, ...
- 洛谷 P3205 [HNOI2010]合唱队 解题报告
P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...
- 【arc102E】Stop. Otherwise...
Portal --> arc102E Description 有\(N\)个位置,每个位置可以填一个\(1\sim K\)的数,要求对于每一个\(i\in [2,2K]\),求出任意两个位置的和 ...