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

VB.Net中如何让JSON格式字符串仅包含单个双引号

VB.NET 修复JSON字符串双引号重复转义问题

问题场景

开发过程中拿到存在双引号重复转义的异常JSON内容:

"{""head"":{""clientID"":""100088optimumremit"",""reqTime"":""2022-01-20T15:06:58+08:00"",""reqMsgID"":""GcashValidate85"",""clientSecret"":""100088optimumremit""},""body"":{""merchantID"":""100088"",""codeString"":""123456"",""codeType"":""REFERENCE_CODE""}}"

需要转换为标准JSON格式,目标结果如下:

{"head":{"clientID":"100088optimumremit","reqTime":"2022-01-20T15:06:58+08:00","reqMsgID":"GcashValidate85","clientSecret":"100088optimumremit"},"body":{"merchantID":"100088","codeString":"123456","codeType":"REFERENCE_CODE"}}

处理方案

方案1:直接字符串替换(简单场景适用)

如果确认字符串仅存在双引号重复转义、无其他格式问题,可直接通过字符串替换处理:

' 假设存储异常JSON的变量为 badJson
Dim standardJson As String = badJson.Trim().Trim(""""c).Replace("""""", """")

逻辑说明:

  • 先通过Trim(""""c)移除字符串首尾多余的包裹双引号
  • 再通过Replace("""""", """")将字符串内所有连续两个双引号替换为单个双引号,VB.NET语法中字符串字面量内连续两个双引号代表一个实际的双引号字符

方案2:JSON反序列化处理(推荐,鲁棒性更强)

如果担心直接替换破坏合法JSON结构,可使用JSON处理库(如Newtonsoft.Json)做反序列化处理,自动处理所有转义逻辑,不会出现替换错误:

Imports Newtonsoft.Json.Linq

' 第一次反序列化将转义后的JSON字符串值解析为普通原生字符串
Dim standardJson As String = JToken.Parse(badJson).ToObject(Of String)()

逻辑说明:

  • 重复转义的JSON本质是「被二次序列化为字符串的JSON内容」,反序列化过程会自动还原所有转义字符,直接得到标准格式的JSON字符串
  • 该方式不会误判JSON内容中合法的双引号场景,适配所有复杂JSON结构

内容的提问来源于stack exchange,提问作者John Andrew Manaligod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.18 16:15:42