Разбор JSON ответа в массив - PullRequest
0 голосов
/ 10 апреля 2020

Я не могу преобразовать или десериализовать приведенный ниже ответ json в массив, мне нужно сохранить атрибутное содержимое в массив, используя c#

ниже приведен мой json формат ответа

{
  "doc1.doc": {
    "category": "word",
    "name": "doc1.doc",
    "size": "10 mb",
    "content": [
      "name",
      "age",
      "dob"
    ]
  }
}

мой c# код

var deser = JsonConvert.DeserializeObject<dynamic>(response.Content);
            Console.WriteLine(deser.doc1.doc.content);

я получаю ответ, используя острый покой

1 Ответ

0 голосов
/ 10 апреля 2020

Проблема, с которой вы столкнетесь, состоит в том, что ваш ответ имеет "doc1.do c" в качестве имени объекта с точкой в ​​середине. В C# вы разделяете различные части динамического c, используя точку. Таким образом, хотя вы можете десериализовать все в порядке, вы сталкиваетесь с проблемами при попытке получить прямой доступ к частям в виде динамического c, так как компилятор считает, что doc1.do c - это две отдельные части, а затем во время выполнения возникает проблема.

Таким образом, вам нужно получить доступ к вашим данным другим способом, используя имя поля. Это должно работать

var content = deser["doc1.doc"].content;

Или, если вы хотите массив

string[] content = deser["doc1.doc"].content.ToObject<string[]>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...