Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用json.net反序列化json数组_C#_Json_Json.net - Fatal编程技术网

C# 使用json.net反序列化json数组

C# 使用json.net反序列化json数组,c#,json,json.net,C#,Json,Json.net,我有一个json字符串,如下所示: { "documents": [ { "name": "20200809/1", "fields": { "details": { "stringValue": "bad" }, "paid": {

我有一个json字符串,如下所示:

{
  "documents": [
    {
      "name": "20200809/1",
      "fields": {
        "details": {
          "stringValue": "bad"
        },
        "paid": {
          "stringValue": "yes"
        }
      }
    },
    {
      "name": "20200809/4",
      "fields": {
        "details": {
          "stringValue": "good"
        },
        "paid": {
          "stringValue": "no"
        }
      }
    }
  ]
}
对我来说重要的字符串是
name
details
paid
。当我从服务器检索信息时,它是这样的json

我使用JSON.net(
JsonConvert
)进行反序列化,但我认为我做得不对。如何从这个json获取
name
details

List<object> json = JsonConvert.DeserializeObject<List<object>>(jsonString);
Dictionary<string, object> dict = json[0] as Dictionary<string, object>;
//get name
string name = dict["name"] as string;
List json=JsonConvert.DeserializeObject(jsonString);
Dictionary dict=json[0]作为字典;
//得名
string name=dict[“name”]作为字符串;
它给了我:

无法反序列化当前JSON对象,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化


JSON表示的完整对象是一个
字典
——您必须解析整个结构并使用map/collect循环来获取所需的特定键,或者可以使用
JSON路径

由JSON表示的完整对象是一个
字典
——您必须解析整个结构并使用map/collect循环来获取所需的特定键,或者可以使用
JSON路径

数组以
[
开头,对象以
开头{
-猜猜你在这里有什么你可以阅读文档,所以开始的对象是一个
字典
?不知怎的…但这并没有多大帮助。尝试“感觉”它有什么不好的地方。如果你不想为该json构建类结构,那么请使用json路径。请随意发布使用
JObject
作为答案,我很乐意接受。使用它解决了问题:)谢谢。数组以
[
开头,对象以
开头{
-猜猜你在这里有什么你可以阅读文档,所以开始的对象是一个
字典
?不知怎的…但这并没有多大帮助。尝试“感觉”它有什么不好的地方。如果你不想为该json构建类结构,那么请使用json路径。请随意发布使用
JObject
作为答案,我很乐意接受。使用它解决了问题:)谢谢。
    string jsonString = "{'documents':[{'name':'20200809/1','fields':{'details':{'stringValue':'bad'},'paid':{'stringValue':'yes'}}},{'name':'20200809/4','fields':{'details':{'stringValue':'good'},'paid':{'stringValue':'no'}}}]}";
//Note: You must convert to JObject
var jsonObject = JObject.Parse(jsonString);
//Note: And get documents object get zero index and "name" key and fixed!
var jsonMemberName = jsonObject["documents"][0]["name"].ToString();