C# 如何在c中使用newtonsoft.json从json字符串中获取值#

C# 如何在c中使用newtonsoft.json从json字符串中获取值#,c#,json,object,json.net,C#,Json,Object,Json.net,我有以下json字符串(这是其中的一部分) 如何使用newtonsoft.json或任何其他方式从该字符串中获取值(分离对象和值) 我这样尝试过(通过创建根对象,只是一个小小的尝试) 然后像这样要求它 string b = client.GetPromotionalTopDeal_TOUR("TCTZ00021"); // this gives the json string 试试这个,打电话给上面的同学 RootobjectOne one = JsonConvert.DeserializeO

我有以下json字符串(这是其中的一部分)

如何使用newtonsoft.json或任何其他方式从该字符串中获取值(分离对象和值)

我这样尝试过(通过创建根对象,只是一个小小的尝试)

然后像这样要求它

string b = client.GetPromotionalTopDeal_TOUR("TCTZ00021"); // this gives the json string
试试这个,打电话给上面的同学

RootobjectOne one = JsonConvert.DeserializeObject<RootobjectOne>(b);
RootobjectOne=JsonConvert.DeserializeObject(b);
但是没有得到任何成功的结果。希望您能在这方面提供帮助

注意:它给出了以下错误------>,因为该类型需要一个JSON对象(例如{“name”:“value”})才能正确反序列化。
要修复此错误,请将JSON更改为JSON对象(例如{“name”:“value”}),或将反序列化类型更改为数组或实现可从JSON数组反序列化的集合接口(例如ICollection、IList)类似列表的类型。还可以将JsonArrayAttribute添加到类型中,以强制它从JSON数组反序列化。

您在顶层有一个数组,因此它应该是:

var items = JsonConvert.DeserializeObject<List<RootobjectOne>>(b);

根对象也应该更改
RootobjectOne one = JsonConvert.DeserializeObject<RootobjectOne>(b);
var items = JsonConvert.DeserializeObject<List<RootobjectOne>>(b);
public class RootobjectOne
{
    [JsonProperty("topdealMaster")]
    public Topdealmaster[] TopdealMasters { get; set; }
}