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

C#如何仅移除JSON文本首尾引号而非全部引号?

如何移除JSON文本首尾的引号(C#实现)

我懂你的困扰——拿到的JSON字符串被首尾的双引号裹得严严实实,想去掉这对引号却不想动内部的引号,结果用全局替换把所有引号都删了,完全不是预期的效果对吧?

先明确你的问题:你拿到的原始字符串是带首尾引号和内部转义符的格式:

""{"serverToken": "798358975235895283958208564208520o45", "username": "ImSkrt", "imageUrl": "https://s3.amazonaws.com/media.orderv.com/orderv_live/static/player_avatars/12039273888.1557487912.907537.jpg", "message": "Success!"}""

你需要的是去掉首尾的引号,保留内部所有正常的引号和JSON结构。

正确的解决方案

你不需要全局替换引号,只需要针对首尾的那一对引号操作,这里有两种简单可靠的方法:

方法1:使用Trim()方法

String.Trim(char)可以精准移除字符串首尾指定的字符,这里我们传入双引号'"',它只会删掉开头和结尾的引号,内部的内容完全不受影响:

// 先处理转义字符(你的代码里已经完成这一步)
string ss = s.Replace(@"\", "");
// 只移除首尾的双引号
string sss = ss.Trim('"');
Console.WriteLine(sss);

方法2:使用Substring()截取

如果担心首尾可能出现多个引号(不过你的场景大概率是单个),可以直接截取中间部分,跳过第一个和最后一个字符:

string ss = s.Replace(@"\", "");
// 先判断字符串长度避免索引越界,再截取中间内容
string sss = ss.Length >= 2 ? ss.Substring(1, ss.Length - 2) : ss;
Console.WriteLine(sss);

为什么你的原代码不行?

你之前用ss.Replace("\"", "")是全局替换所有双引号,自然会把JSON内部用来包裹键、值的引号也一并删掉,直接破坏了JSON的结构,这肯定不是你想要的结果。

修改后的完整代码片段

把你代码的最后几行替换成上面的方法即可,比如:

WebClient wc = new WebClient(); 
HttpClient hc = new HttpClient(); 
HttpClient hc2 = new HttpClient(); 
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://f2aa611yne.execute-api.us-east-1.amazonaws.com/production/players/confirm/"); 
List<KeyValuePair<string, string>> p = new List<KeyValuePair<string, string>>(); 
p.Add(new KeyValuePair<string, string>("device_id", "0AF0406E-6DD1-452E-BE14-3B5A94ACE320")); 
p.Add(new KeyValuePair<string, string>("passcode", textBox8.Text)); 
p.Add(new KeyValuePair<string, string>("phone_number", textBox4.Text)); 
HttpResponseMessage response = await hc.PostAsync("https://f2aa611yne.execute-api.us-east-1.amazonaws.com/production/players/confirm/", new FormUrlEncodedContent(p)); 
string s = await(response.Content.ReadAsStringAsync()); 
Console.WriteLine(s); 
string ss = s.Replace(@"\", ""); 
Console.WriteLine(ss); 
// 替换为Trim方法移除首尾引号
string sss = ss.Trim('"');
Console.WriteLine(sss);

这样就能得到你想要的干净JSON结构啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:08:56