C#开发Windows Form时如何将用户输入值传入API请求参数Body
问题解答
问题1:如何在内联格式中传入字符串类型的用户输入值
你当前的写法属于普通字符串,无法自动解析{txtInputtedReg.Text}为实际变量值,需要使用字符串插值功能实现变量替换:
- 在字符串开头添加
$标识,即可将大括号包裹的变量自动替换为实际值,注意插值字符串如果需要输出大括号本身,需要连续写两个大括号做转义,示例代码如下:
request.AddParameter("application/json", $"{{\n\t\"registrationNumber\":\"{txtInputtedReg.Text}\"\n}}", ParameterType.RequestBody);
注意:手动拼接JSON存在格式异常风险,如果用户输入内容包含双引号、换行符等特殊字符,会直接导致请求体JSON格式错误。更稳妥的方案是通过JSON序列化生成请求体,示例代码如下:
// 构造匿名对象作为请求内容 var requestData = new { registrationNumber = txtInputtedReg.Text }; // 用.NET内置的System.Text.Json序列化生成标准JSON字符串 string jsonBody = System.Text.Json.JsonSerializer.Serialize(requestData); request.AddParameter("application/json", jsonBody, ParameterType.RequestBody);
问题2:在C#中如何在字符串里插入双引号
分两种使用场景实现:
- 普通字符串:用反斜杠
\作为转义符,写法为\",示例:
string demo = "这是带双引号的内容:\"测试文本\"";
- 逐字字符串(字符串开头加
@标识,不会默认解析\为转义符):连续写两个双引号""表示单个双引号,示例:
string demo = @"这是逐字字符串里的双引号:""测试文本""";
内容的提问来源于stack exchange,提问作者Brandon Parkinson
相关产品推荐
相关产品推荐

