C# 如何编写正确的json路径?
我有这样一个json对象: 我想通过以下代码行访问“问题”字段:C# 如何编写正确的json路径?,c#,json,C#,Json,我有这样一个json对象: 我想通过以下代码行访问“问题”字段: string msg = (json1["data"][0]["question"]).ToString(); 但它不起作用,为什么 但它不起作用,为什么 因为您需要再次查看json “数据”是一个对象,而不是数组。因此“[0]”无效,因为它将访问数组的第一个元素。这里唯一的数组是“answers”元素。“问题”直接是“数据”的属性。准备一个C#模型,如下所示 public class
string msg = (json1["data"][0]["question"]).ToString();
但它不起作用,为什么
但它不起作用,为什么
因为您需要再次查看json
“数据”是一个对象,而不是数组。因此“[0]”无效,因为它将访问数组的第一个元素。这里唯一的数组是“answers”元素。“问题”直接是“数据”的属性。准备一个C#模型,如下所示
public class rootClass
{
public bool ok { get; set; }
public data data { get; set; }
}
public class data
{
public string question { get; set; }
public string[] answers { get; set; }
public int id { get; set; }
}
rootClass rootClass = JsonConvert.DeserializeObject<rootClass>(inputJson);
string msg = rootClass.data.question;
并使用JsonConvert(Newtonsoft dll)类进行反序列化和访问,如下所示
public class rootClass
{
public bool ok { get; set; }
public data data { get; set; }
}
public class data
{
public string question { get; set; }
public string[] answers { get; set; }
public int id { get; set; }
}
rootClass rootClass = JsonConvert.DeserializeObject<rootClass>(inputJson);
string msg = rootClass.data.question;
rootClass rootClass=JsonConvert.DeserializeObject(inputJson);
字符串msg=rootClass.data.question;
“数据”不是数组。因为它是一个对象(使用{}
声明),而不是一个数组(使用[]
声明),所以你可以分辨出来;(这回答了你的问题吗?在我看来,我们这里有一点XY。而眼前的问题是,数据
不是数组。你真正的问题来自“数据”作为对象或数组。我将创建一个类,其中数据是数组。当它是单个对象时,将其反序列化为一个元素数组。这样,无论发生什么,您都可以像处理集合一样处理数据。为此,请使用拖放链接。