gpt4 book ai didi

c# - RestSharp:无法将类型为 'RestSharp.JsonArray' 的对象转换为类型 'System.Collections.Generic.IDictionary`

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:12 24 4
gpt4 key购买 nike

目前无法解决问题:无法将类型为“RestSharp.JsonArray”的对象转换为类型为“System.Collections.Generic.IDictionary”2[System.String,System.Object——我可以看到这个错误在这里,在响应本身中:

var response = client.Execute<ThirdPartySuggester>(request);

但是我得到的是 NullReferenceExeption:

var name = response.Data.Name;

这是我的测试类:

    public class Class1
{
[Theory]
[InlineData("apple", "en-us")]
public void SearchTest(string searchPhrase, string language)
{
var client = new RestClient("https://test_site/api");
var request = new RestRequest("/thirdparty/suggester?searchPhrase={search_key}&marketLocale={language_id}", Method.GET);
request
.AddUrlSegment("search_key", searchPhrase)
.AddUrlSegment("language_id", language);
var response = client.Execute<ThirdPartySuggester>(request);

var name = response.Data.Name;
var manufacturer = response.Data.Manufacturer;
var deviceType = response.Data.DeviceType;
var searchKey = response.Data.SearchKey;

.....

我得到的响应包含以下数据:

[
{
"name": "iPhone 7 Plus",
"manufacturer": "Apple",
"deviceType": "smartphone_tablet",
"searchKey": "apple_iphone_7_plus"
},
{
"name": "iPhone 4s",
"manufacturer": "Apple",
"deviceType": "smartphone_tablet",
"searchKey": "apple_iphone_4s"
},
{
"name": "iPhone 6",
"manufacturer": "Apple",
"deviceType": "smartphone_tablet",
"searchKey": "apple_iphone_6"
},
{
"name": "iPod Touch 8th Generation",
"manufacturer": "Apple",
"deviceType": "smartphone_tablet",
"searchKey": "apple_ipod_touch_8th_generation"
},
{
"name": "iPhone 7",
"manufacturer": "Apple",
"deviceType": "smartphone_tablet",
"searchKey": "apple_iphone_7"
}
]

这是我要反序列化的实现类:

public class ThirdPartySuggester
{
public string Name { get; set; }
public string Manufacturer { get; set; }
public string DeviceType { get; set; }
public string SearchKey { get; set; }
}

伙计们,如果你们能提供帮助,我将不胜感激!

最佳答案

您将返回一个 ThirdPartySuggester 数组,因此您需要指定一个列表:

var response = client.Execute<List<ThirdPartySuggester>>(request);

然后访问它们,使用循环

foreach (ThirdPartySuggester item in response.Data)
{
//get each items properties
}

关于c# - RestSharp:无法将类型为 'RestSharp.JsonArray' 的对象转换为类型 'System.Collections.Generic.IDictionary`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47014109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com