如何将TextBox的值赋值给JSON字符串中的subjectId变量
解决TextBox值填充JSON字符串中subjectId字段的问题
下面提供几种可行的解决方法,帮你正确将TextBox的值嵌入到JSON字符串的subjectId字段中:
方法1:使用字符串插值(推荐)
结合逐字字符串(@)和插值符号($),可以直接在字符串中嵌入变量,写法简洁不易出错:
string number = personnummer.Text; var body = $@"{{ ""requestId"" : ""requestId"", ""subjectId"" : ""{number}"" }}";
说明:$@是插值逐字字符串,{number}会被变量的实际值替换;逐字字符串里的双引号需要用""转义,JSON的大括号需要用{{}}转义才能保留在最终字符串中。
方法2:拆分逐字字符串拼接
如果不想用插值,可以将变量部分与逐字字符串拆分后拼接,避免把变量语法写在逐字字符串内部:
string number = personnummer.Text; var body = @"{ ""requestId"" : ""requestId"", ""subjectId"" : """ + number + @""" }";
说明:前半段逐字字符串到""subjectId"" : """结束,拼接变量number后,再拼接后半段的@""" }",这样变量值就能正确插入到subjectId的位置。
方法3:使用JSON序列化工具(更规范)
如果JSON结构复杂,推荐用类序列化的方式,彻底避免手动拼接字符串的格式问题:
首先定义对应JSON结构的类:
public class RequestBody { public string requestId { get; set; } public string subjectId { get; set; } }
然后实例化类并序列化为JSON字符串:
string number = personnummer.Text; var requestBody = new RequestBody { requestId = "requestId", subjectId = number }; var body = System.Text.Json.JsonSerializer.Serialize(requestBody);
说明:这种方式更易维护,不会出现引号转义或格式错误,需要引用System.Text.Json命名空间(适用于.NET Core/.NET 5+),旧框架可使用Newtonsoft.Json库。
内容的提问来源于stack exchange,提问作者Ace2874
相关产品推荐
相关产品推荐

