gin 解析 formData带文件和json字符串的一起的方式

这篇具有很好参考价值的文章主要介绍了gin 解析 formData带文件和json字符串的一起的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基础不好真的难受,这点问题折腾半天…

网上看到很多单独解析文件的,网上的资料确实都能找到。但是结合gin解析文件和json字符串(或其他类型的参数,但字符串最好)一起的,就不好找。

需求是前端使用Content-Type: multipart/form-data的形式上传文件以及需要的参数。后端使用golang 的gin 框架解析这两种参数。

零零散散的找了一晚上资料,总算解决了。

前端参数传输要求

例如我使用axios,重点是对象得转成json字符串去传输,因为在formdata形势下axios不会帮忙转化为字符串了。

    let formData = new FormData();
    // img.file是个文件对象
    formData.append("file", img.file);
    // img.color是个结构体,需要转成json字符串
    formData.append("color", JSON.stringify(img.color));
    // 这里甚至不需要指定Content-Type: multipart/form-data请求头,它会自动识别
    return post<string>(baseUrl + "cardChangeBGColor", formData);

gin解析

有两种方式:

//c 是 *gin.Context
// 直接用PostForm就能获取json字符串
colorStr := c.PostForm("color")
// 然后转成byte数组去解析
json.Unmarshal([]byte(colorStr), &(ch.Color))

还有一种,这种比较细,折磨了一晚上

c.Request.ParseMultipartForm(2<<10)
colorStr := c.Request.FormValue("color")
json.Unmarshal([]byte(colorStr), &(ch.Color))
fileRead, file, err := c.Request.FormFile("file")

这里的细节是使用ParseForm还是ParseMultipartForm的问题,一般使用可能没注意,感觉都没啥区别,如果仅仅是解析文件,那么两个都能用,但是你还想c.Request.FormValue("color")这样获取不是文件类型的参数,那么这里就必须使用ParseMultipartForm。否则只能读取到文件。

所以,这里建议直接使用 c.PostForm("color")更简单点。

折磨!文章来源地址https://www.toymoban.com/news/detail-575424.html

到了这里,关于gin 解析 formData带文件和json字符串的一起的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive 解析 JSON 字符串数据的实现方式

    在 Hive 中提供了直接解析 JSON 字符串数据的方法 get_json_object(json_txt, path) ,该方法参数解析如下: json_txt :顾名思义,就是 JSON 字符串; path :指的是匹配 JSON 字符串的格式,通过固定的语法获取 JSON 字符串中的内容。 常用的 path 参数匹配符号有四个,分别是: $ :表示获

    2024年02月05日
    浏览(51)
  • 五分钟学会如何用java解析json字符串!

    在工作中我们常常使用json来存储和传输结构化的数据,如用户信息、配置信息等。它通常以string的方式进行传输,因此如何将string解析并得到我们想要的信息是一项必备且常用的功能。 JSON(JavaScript Object Notation)是一种轻量级的、基于文本的、与语言无关的数据交换格式,

    2024年02月11日
    浏览(43)
  • C#2010 .NET4 解析 json 字符串

    下载Newtonsoft.Json.dll  

    2024年02月11日
    浏览(39)
  • Golang校验字符串是否JSON格式方法json.Valid源码解析

    上篇文章《Golang中如何校验字符串是否为JSON格式?》主要讲解了使用json.Valid校验字符串是否JSON格式的使用方法,本文来剖析一下json.Valid方法的源码。 json.Valid方法定义: scan := newScanner() 获取一个 scanner 类型的对象,关键的是checkValid方法,checkValid源码如下: 首先调用了sc

    2023年04月26日
    浏览(43)
  • 大数据技术之Spark SQL——解析JSON字符串

    目录 一、数据准备 1)Department  2)School 3)Student 4)Teacher 5)实例化对象 结构如下: 二、加载数据 数据展示  三、日志数据加载 输出结果  sc.textFile读取数据源,并对结构化数据进行拆分           同样的,除了json格式字符串,我们也可以用类似的方法来加载日志数据。

    2024年02月04日
    浏览(46)
  • Java 解析多层嵌套json数据及json字符串与对象的相互转换

    本文主要介绍java解析多层嵌套json数据以及字符串与JSON对象之间的相互转换,包括:json字符串的取值,json对象与字符串的相互转换,字符串转化为java对象,字符串转化为javaList列表等。 提示:以下是本篇文章正文内容,下面案例可供参考 数据格式:JSON实际上就是键值对(

    2024年02月04日
    浏览(63)
  • 【微信小程序】使用 JSON.parse 方法将返回的 JSON 字符串解析为对象

    在微信小程序中,你可以使用 JSON.parse 方法将返回的 JSON 字符串解析为对象。以下是实现类似功能的示例代码: 在上述代码中,我们使用 JSON.parse 方法将返回的 JSON 字符串解析为对象。然后,我们可以通过点语法或方括号语法访问解析后的对象的属性,例如 data.result 。 请注

    2024年02月15日
    浏览(52)
  • Java中将json字符串导出为json文件【详细步骤】

    一、概述 请根据具体需求具体改动,此代码需要将前端的数据查询出来,然后进行json字符串的转化 .getCatalogId(id)方法是根据id查出来的内容然后再进行转换成json字符串 也可以直接传入json字符串进行测试 二、代码  三、使用postman进行测试 导出的文件在D盘temp文件夹下面 下面

    2024年02月06日
    浏览(41)
  • 55_Pandas.DataFrame 转换为 JSON 字符串/文件并保存 (to_json)

    使用pandas.DataFrame的方法to_json(),可以将pandas.DataFrame转为JSON格式字符串(str类型)或者输出(保存)为JSON格式文件。 在此,对以下内容进行说明。有关其他参数,请参阅上面的官方文档。 pandas.DataFrame.to_json() 的基本用法 转换为JSON格式字符串 输出(保存)为JSON格式文件 文

    2024年02月15日
    浏览(41)
  • 如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它可以用来存储和传输结构化的数据。在 Java 中,有多种方法可以将 JSON 文件读取为字符串,本文将介绍其中的几种。 java.io 包中提供了一些类,如 FileReader、BufferedReader、InputStreamReader 等,可以用来读取文件的内容。

    2024年02月01日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包