如何在C#中格式化指定内容为JSON请求体?
解决C#匿名对象构造嵌套JSON请求体的问题
你可以通过嵌套匿名对象+数组初始化器来实现目标JSON的结构,以下是完整的代码示例:
var body = new { id = "123", SessionId = "", Sorting = new[] { new { field = "EventDateTime", dir = "desc" } }, Group = new object[0] // 空数组 }; request.AddJsonBody(body);
关键部分说明:
- Sorting数组:用
new[] { ... }创建匿名类型的数组,内部嵌套一个匿名对象,完美匹配{ field = "EventDateTime", dir = "desc" }的结构。 - Group空数组:因为是无具体类型的空数组,直接用
new object[0]即可;如果后续Group需要存储特定结构的对象,也可以根据实际类型调整,比如new YourGroupType[0]。
如果你的JSON序列化工具(比如System.Text.Json)默认会将属性名转为驼峰式,而你需要严格匹配原始的大小写(比如保留SessionId而非转为sessionId),可以配置序列化选项禁用自动转换:
var options = new JsonSerializerOptions { PropertyNamingPolicy = null, // 禁用驼峰转换 WriteIndented = true // 可选:生成格式化的JSON }; request.AddJsonBody(body, options);
内容的提问来源于stack exchange,提问作者Angela
相关产品推荐
相关产品推荐

