C# RestSharp 如何为JSON请求体添加数组方括号适配API要求
问题根因
RestSharp的AddJsonBody方法会根据传入的对象类型自动完成JSON序列化,你当前传入的是单个Dictionary对象,序列化结果自然是无外层方括号的单对象格式,无法满足接口要求的数组结构。
可直接落地的修改方案
- 初始化单条patch操作的字典对象,注意修正op字段值和接口要求匹配:
Dictionary<string, string> patchItem = new Dictionary<string, string>(); patchItem.Add("op", "replace"); patchItem.Add("path", "/PCF_AVALARAT"); patchItem.Add("value", ATC);
- 将单个字典对象包裹为数组结构,再传入请求方法:
// 集合类型对象会被自动序列化为带外层方括号的JSON数组 // 如果需要同请求传递多条patch操作,直接把多个patchItem实例加到数组中即可 var requestBodyArray = new[] { patchItem }; request2.AddJsonBody(requestBodyArray);
注意事项
- 不要手动拼接字符串给JSON加外层方括号,这种方式很容易因为特殊字符转义问题引发格式错误,依赖RestSharp自带的序列化逻辑生成数组结构是最稳定的方案。
- 你原代码中op字段写的是
"add",和接口要求的"replace"不匹配,就算请求体格式调整正确,字段值不对也会被接口校验拦截。
内容的提问来源于stack exchange,提问作者Brent Allison
相关产品推荐
相关产品推荐

