【发布时间】:2021-06-03 13:39:12
【问题描述】:
我正在尝试使用 RestSharp 发布一些数据,但是在 IRestResponse 响应中我的 JSON 内容出现错误。
错误: "{"status":"error","message":"第 1 行第 96 列的输入 JSON 无效:意外字符 ('e' (代码 101)):期望用逗号分隔对象条目",...} "
从消息中我假设我在“内容”行的末尾缺少一个逗号来分隔对象,但不知道该怎么做?还是我需要将我的名称/值对放入它们自己的对象中?
var client = new RestClient("https://api.com/APIKEY");
var request = new RestRequest(Method.POST);
request.AddHeader("accept", "application/json");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"properties\":{" +
"\"pipeline\":\"0\"," +
"\"content\":\"<b>Email: </b>\"" + user.Email + "\"<br/><b>Error: </b>\"" + string.Join("<br/>", type.Name.Split(',').ToList()) + "\"<br/><b>UserId: </b>\"" + user.userId + "\"<br/><b>RequestId: </b>\"" + callbackData.idReference +
"\"subject\":\"Error for\"" + user.FirstName + " " + user.LastName +
"\"owner_id\":\"001\"}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
【问题讨论】:
-
请不要像这样手动构建 JSON。容易出错!
-
不要手动创建json。
-
AddParameter似乎没有将其添加到请求的正文中,因为它应该用于 POST。查看名为AddJsonBody的方法是否有帮助。 -
感谢您的建议。我将它用于集成,文档建议使用 AddParameter 但我将改为查看 AddJsonBody。我还将考虑使用 JsonConvert 并改用该对象。