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. ACM数论之旅13---容斥原理(一切都是命运石之门的选择(=゚ω゚)ノ)

    容斥原理我初中就听老师说过了,不知道你们有没有听过(/≧▽≦)/ 百度百科说: 在计数时,必须注意没有重复,没有遗漏. 为了使重叠部分不被重复计算,人们研究出一种新的计数方法. 这种方法的基本思想是: ...

  2. springMVC 访问静态资源

    问题描述 使用SpringMVC时遇到静态资源无法加载的问题,报404 问题原因 如果SpringMVC的映射模式采用的是后缀名匹配,如[*.do]或者[*.action]则不会出现该问题,因为静态资 ...

  3. SPOJ_VLATTICE

    题目是给你一个空间,和一个点(n,n,n),求从原点出发能够直接接触多少个点(不经过任何一个点)? 典型的mobius反演即可. 首先,ans=3,因为(1,0,0),(0,1,0),(0,0,1)这 ...

  4. iOS 代码片段的添加!

    说明.代码片段就是方便快捷输入的片段,类似do -while.switch等这些系统语句,这些系统的语句也是代码片段,快速输入一些常用的代码语句,就可以把这些语句写成代码片段! Example: 我们 ...

  5. BZOJ5291 BJOI2018链上二次求和(线段树)

    用线段树对每种长度的区间维护权值和. 考虑区间[l,r]+1对长度为k的区间的贡献,显然其为Σk-max(0,k-i)-max(0,k-(n-i+1)) (i=l~r). 大力展开讨论.首先变成Σk- ...

  6. ReentrantLock详解 以及与synchronized的区别

    ReentrantLock lock = new ReentrantLock(); //参数默认false,不公平锁 ReentrantLock lock = new ReentrantLock(tr ...

  7. MT【152】不患寡而患不均

    ((清华2017.4.29标准学术能力测试1) $a_1,a_2,\cdots,a_9$ 是数字$1$到$9$ 的一个排列,则 $a_1a_2a_3+a_4a_5a_6+a_7a_8a_9$ 的最小值 ...

  8. C#基础-代码部署数据库及IIS站点

    一.前言        最近忙里偷闲,做了一个部署数据库及IIS网站站点的WPF应用程序工具. 二.内容        此工具的目的是: 根据.sql文件在本机上部署数据库 在本机部署IIS站点,包括 ...

  9. 「转」图像算法---白平衡AWB

    本文大体讲解了白平衡的算法流程,适用于想了解和学习白平衡原理的筒子们. 一般情况下要实现AWB算法需要专业的图像和算法基础,本文力图通过多图的方式,深入浅出,降低初学者理解上的门槛,让大家都理解到白平 ...

  10. WARNING: pgstat wait timeout

      在ELK的邮件报警中,发现了一个 WARNING: pgstat wait timeout 的报错信息,看字面意思是pgstat有关操作等待超时.   通过google查询,发现在pg的邮件列表中 ...