You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA中如何将邮件对象内容用双引号包裹生成合法JSON

解决VBA生成合法双引号JSON的问题

嘿,这个坑我之前也踩过!VBA里处理字符串的双引号转义确实容易搞混,你之前的写法问题出在转义方式不对——在VBA的字符串里,要输出一个真正的双引号,得用两个双引号来转义,而不是你之前的"""拼接方式。

方法一:手动拼接(适合简单场景)

先给你修正手动拼接的代码,用正确的转义方式:

Dim smry As String, descrp As String, jsTest As String
smry = """summary""" ' 这里会生成带双引号的键:"summary"
descrp = """description""" ' 生成键:"description"

' 核心:用两个双引号转义出一个双引号,把内容包裹起来
jsTest = "{" & smry & ":" & """" & CStr(Msg.Subject) & """" & "," & descrp & ":" & """" & CStr(Msg.Body) & """" & "}"

解释下关键部分:"""" & CStr(Msg.Subject) & """" 其实是拆成了三个部分:

  • 前两个双引号 → 转义成一个"
  • 中间是邮件主题的内容
  • 后两个双引号 → 再转义成一个"
    这样拼出来就是"Release 18.20 Produktion"这种符合规范的格式。

不过手动拼接有个隐患:如果邮件主题或正文里本身包含双引号、换行符这类特殊字符,直接拼接会破坏JSON结构,导致JSON无效。所以更推荐下面的专业方法。

方法二:用JSON库生成(更稳妥,支持特殊字符)

用专门的VBA JSON库(比如VBA-JSON)来生成JSON,它会自动处理所有转义和格式问题,比手动拼接靠谱太多。

步骤很简单:

  1. 先把VBA-JSON模块导入到你的VBA工程里(直接复制模块代码到工程中即可)
  2. 引用Microsoft Scripting Runtime(VBA编辑器→工具→引用,找到它勾选)

然后用下面的代码:

' 创建字典对象来存储键值对
Dim jsonDict As Object
Set jsonDict = CreateObject("Scripting.Dictionary")

' 添加需要的字段,不用管双引号,库会自动处理
jsonDict("summary") = CStr(Msg.Subject)
jsonDict("description") = CStr(Msg.Body)

' 转换为标准JSON字符串
Dim jsTest As String
jsTest = JsonConverter.ConvertToJson(jsonDict)

这样生成的JSON不仅是双引号包裹的合法格式,就算内容里有特殊字符(比如用户输入的双引号),库也会自动转义成\",完全符合JSON规范。

内容的提问来源于stack exchange,提问作者khashashin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:57:51