如何在c#中将JSON字符串数组发送到API

问题描述 投票:0回答:2

我希望将这个 JSON 字符串数组发送到我的 API。我遇到了一些问题......

  • 我的类模型也应该是一个数组吗?
  • 当我反序列化时,我收到一条错误消息:无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“Model”,因为该类型需要 JSON 对象(例如 {"name":"value"} )以正确反序列化。

要发送的正文是:

 [
{
    "ObjectId" : "1270583B-208A-427F-8B1E-B20E6271D0FE",
    "ObjectTypeId" : 1
},
{
    "ObjectId" : "1270583B-208A-427F-8B1E-B20E6271D0FE",
    "ObjectTypeId" : 2
},
{
    "ObjectId" : "1270583B-208A-427F-8B1E-B20E6271D0FE",
    "ObjectTypeId" : 3
}
]

我的模型类是:

class Model
{

        public string ObjectId { get; set; }
        public int ObjectTypeId { get; set; }


}

我正在像这样反序列化我的 Httpcontent:

static object Content;
string HttpContent= "[{\"ObjectId\" : \"1270583B-208A-427F-8B1E- B20E6271D0FE\" , \"ObjectTypeId\" : 1 }]";
Content = JsonConvert.DeserializeObject<Model>(Httpcontent);
c# json string dotnet-httpclient
2个回答
1
投票

您应该尝试反序列化为模型对象列表。

Content = JsonConvert.DeserializeObject<List<Model>>(Httpcontent);

0
投票

解决方案是在我的模型中添加 [] 。谢谢@Johannes.colmsee

Content = JsonConvert.DeserializeObject<Model[]>(Httpcontent);
© www.soinside.com 2019 - 2024. All rights reserved.