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

  1. package main
  2.  
  3. import (
  4. "encoding/json"
  5. "fmt"
  6. "io/ioutil"
  7. "net/http"
  8. )
  9.  
  10. type AutotaskRequest struct {
  11. RequestID string `json:"requestid"`
  12. Clone CloneModel `json:"clone"`
  13. Push PushModel `json:"push"`
  14. }
  15.  
  16. type CloneModel struct {
  17. //TODO
  18. //"Method": string `json:"ceph"`
  19. RequestID string `json:"requestid"`
  20. CallbackURL string `json:"callbackurl"`
  21. }
  22.  
  23. type PushModel struct {
  24. RequestID string `json:"requestiD"`
  25. CallbackURL string `json:"callbackuRL"`
  26. IP string `json:"remoteip"`
  27. Port int `json:"remoteport"`
  28. User string `json:"user"`
  29. }
  30.  
  31. func test(w http.ResponseWriter, r *http.Request) {
  32. // r.ParseForm()
  33. defer fmt.Fprintf(w, "ok\n")
  34.  
  35. fmt.Println("method:", r.Method)
  36. body, err := ioutil.ReadAll(r.Body)
  37. if err != nil {
  38. fmt.Printf("read body err, %v\n", err)
  39. return
  40. }
  41. println("json:", string(body))
  42.  
  43. var a AutotaskRequest
  44. if err = json.Unmarshal(body, &a); err != nil {
  45. fmt.Printf("Unmarshal err, %v\n", err)
  46. return
  47. }
  48. fmt.Printf("%+v", a)
  49.  
  50. }
  51.  
  52. func main() {
  53. http.HandleFunc("/test", test)
  54. http.ListenAndServe(":8888", nil)
  55. }

  客户端所传递参数如下:

  1. {
  2. "requestid": "xxxxx",
  3. "clone": {
  4. "method": "ceph",
  5. "callbackurl": "xxx",
  6. "remoteip": "192.168.2.1",
  7. "remoteport": 8080,
  8. "user": "xxx",
  9. "pass": "xxx",
  10. "path": "xxx",
  11. "filename": "xxx"
  12. },
  13. "optimize": {
  14. "callbackurl": "xxx",
  15. "filter": {
  16. "k1": true,
  17. "k2": false
  18. },
  19. "trim": true,
  20. "progressive": true,
  21. "quality": 100,
  22. "colorNum": 256,
  23. "gifOptLevel": 2,
  24. "svgo": true,
  25. "guetzli": false,
  26. "css_rewrite": false,
  27. "js_rewrite": false
  28. },
  29. "push": {
  30. "method": "ceph",
  31. "callbackurl": "xxx",
  32. "remoteip": "192.168.2.1",
  33. "remoteport": 8080,
  34. "user": "xxx",
  35. "pass": "xxx",
  36. "path": "xxx",
  37. "filename": "xxx"
  38. }
  39. }

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. m3u8 player

    m3u8 player m3u8 是一种基于 HTTP Live Streaming 文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成.目前 由 Apple.inc 率先提出的 ...

  2. Java中split的对象被特殊字符(.或|)分隔

    在Java中,一个String对象被一些特殊字符分隔时,可以使用split()方法,生成一个String[],然后进行其他的操作,就像下面这样: String str = "a1_b1_c1 ...

  3. Nginx+Tomcat搭建高性能负载均衡集群--Windows本地测试版

    链接:http://www.cnblogs.com/wbyp/p/6860744.html

  4. 【刷题】BZOJ 2816 [ZJOI2012]网络

    Description http://www.lydsy.com/JudgeOnline/upload/zjoi2012.pdf Solution 维护树上联通块的信息,支持动态加边删边 LCT 总共 ...

  5. 【刷题】BZOJ 5008 方师傅的房子

    Description 方师傅来到了一个二维平面.他站在原点上,觉得这里风景不错,就建了一个房子.这个房子是n个点的凸多边形 ,原点一定严格在凸多边形内部.有m个人也到了这个二维平面.现在你得到了m个 ...

  6. 【BZOJ4804】欧拉心算

    Description 给定数字\(n\)(\(n\le 10^7\)),求: \[ \sum_{i=1}^n\sum_{j=1}^n\varphi(\gcd(i,j)) \] ​ 多组数据输入,数据 ...

  7. BZOJ2671 Calc 【莫比乌斯反演】

    题目链接 BZOJ2671 题解 令\(d = (a,b)\),\(a = dx,b = dy\) 那么有 \[ \begin{aligned} d(x + y) | d^2xy \\ (x + y) ...

  8. BZOJ 4316: 小C的独立集 解题报告

    4316: 小C的独立集 Description 图论小王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨. 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点, ...

  9. 洛谷 P3205 [HNOI2010]合唱队 解题报告

    P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...

  10. 【arc102E】Stop. Otherwise...

    Portal --> arc102E Description 有\(N\)个位置,每个位置可以填一个\(1\sim K\)的数,要求对于每一个\(i\in [2,2K]\),求出任意两个位置的和 ...