Парсинг JSON с разными именами node [дубликат]

153
12 апреля 2019, 17:00

На данный вопрос уже ответили:

  • Как распарсить json в ассоциативный массив / C# 3 ответа

JSON:

"mainObject": {
    "name1": {
        "giud": null,
        "param_name": "param_value"
        "param_name": "param_value"
        "param_name": "param_value"
    },
    "name2": {
        "giud": null,
        "param_name": "param_value"
        "param_name": "param_value"
        "param_name": "param_value"
    },
    "name3": {
        "giud": null,
        "param_name": "param_value"
        "param_name": "param_value"
        "param_name": "param_value"
    },      
}

Я хочу сериализировать этот Json в объект, и рисую архитектуру класса (последний на данный момент вариант):

namespace PdfFillerIntegration.Models.ReverseMapping
{
    public class MappingRelationCollector
    {
        public List<RelatedNode> mainObject { get; set; }
    }
    public class RelatedNode
    {
        public Dictionary<string, string> node { get; set; }
    }

При этом name1...nameN - всегда разные значения

Вылетаю на строке name1": { я получаю ошибку:

'Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[PdfFillerIntegration.Models.ReverseMapping.RelatedNode]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly. To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object. Path 'mainObject.name1'

Подскажите пожалуйста, какая в данном случае должна быть архитектура класса?

Спасибо

P.S. Кроме варианта JObject.Parse(inputJson)

Answer 1

Вопрос решился следующим образом:

[JsonProperty("mainObject")]
public Dictionary<string, Dictionary<string, string>> MainObject { get; set; }
READ ALSO
Парсинг XML в цикле foreach c#

Парсинг XML в цикле foreach c#

Пытаюсь перебрать значения из элементов XMLНашел в интернете пример

162
Какие есть способы связать 2 сервиса в ASP .NET MVC?

Какие есть способы связать 2 сервиса в ASP .NET MVC?

Необходимо сделать доработку в систему где присутствует самописный IoCЕсть сервис D который вызывается из api1 -> D и в нем храниться важное состояние...

121
Codeigniter 4 работа с категориями

Codeigniter 4 работа с категориями

нужно при формировании страницы вывести вместо id категории название, в таблице с новостью категории хранятся по id вот код вывода на странице

149