【发布时间】:2016-10-24 02:51:00
【问题描述】:
如果有人帮助我在 C# 中仅使用值而不使用键来构造 JArray,我将不胜感激。这是我想要的一个例子:
{[
"ZGVyZWtAcG9zc2tpLmNvbQ==",
"YW5kcmVAbGltYWcubmV0",
"YW5keUBiYW9iYW9tYWlsLmNvbQ==",
"dGVzdEBraW5ub3YuY29t",
"c2hhaG5hd2F6LmFsYW0xM0Bob3RtYWlsLmNvbQ==",
"YnJlYW5uQGVtYWlsLmNvbQ=="
]}
这是我为它编写的代码,但我遇到了一个异常,因为当我声明 JObject 时,它要求我有一个键和一个值,但我只需要值,因为我将此数组作为参数发送到一个 API,他们需要特定格式的 API。
这是导致问题的代码:
var recipients = new JArray();
foreach (var c in retrievedContacts.recipients)
{
var jsonObject = new JObject();
jsonObject.Add(c.id);
recipients.Add(jsonObject);
}
dynamic addToListResponse = await sg.client.contactdb.lists._(listJson.lists[0].id).recipients.post(requestBody: recipients);
最后一行向 SendGrid 发送一个 post 请求。这里列表 id 是有效的,除了在循环中添加 json 对象外一切正常。请帮忙!
【问题讨论】:
-
我回答了您关于如何构造
JArray的问题,然后意识到您的 JSON 无效。上传到jsonlint.com,你会看到一个错误。您的外部容器有大括号 -{然后是}- 但不包含名称/值对。它只有一个值,即一个数组。你确定这是你想要的吗?或者你想要{"requestBody": [..]}