我有一个列表,我要向其中添加元素,如下所示,
foreach (int item in _elementList)
{
_deletionBody.Add(new KeyValuePair<string, int>("ID", item));
}
当我将其序列化为json时,JsonConvert.SerializeObject(_deletionBody)
我越来越
[{"Key":"ID","Value":8000},{"Key":"ID","Value":8001}]
但我需要的格式是
[{"ID":8000},{"ID":8001}]
我如何进入上述格式?或者有更好的方法吗?
4条答案
按热度按时间pbwdgjma1#
根据您提供的内容,当您使用JsonConvert.SerializeObject序列化此列表时,它会提供一个JSON数组,其中每个元素都是具有两个属性的对象:"键"和"值"。
为了得到你想要的输出格式,你可以修改你的代码来创建只带有"ID"属性的对象,而不是使用键-值对,下面是一个例子:
这将创建一个具有单个"ID"属性的对象列表,当您使用JsonConvert.SerializeObject序列化它时,它应该会提供您正在寻找的输出格式。
希望这有帮助!🤗
mf98qq942#
你根本不需要任何foreach循环,只需要使用下面的代码:
ymzxtsji3#
下面的代码应该可以解决这个问题。它创建一个匿名对象,该对象具有您要使用的结构,然后序列化该对象
lvmkulzt4#
它们不匹配,因为您的json表示
KeyValuePairs
的列表,而预期的json表示Objects
的列表,其中包含名为ID
的property
。如果您仍然需要包含数据的密钥,只需使用
[JsonIgnore]
标记即可。请注意,System.Text
和Newtonsoft.Text
中都存在JsonIgnore
,因此请确保相应地引用。