Member 14779968 Ответов: 2

Как сериализовать json, если он имеет повторяющиеся свойства члена ?


У меня есть JSON, который имеет id и parentId дважды. Как мне это сериализовать?
Вот мой json
[
    {
     "id": -2147483639,
     "parentId": 37
    },
    {
    "id": -2147483636,
    "parentId": 35
    }
]


У меня есть свой класс модели, где я использую конструктор для установки значений. Я не знаю, как установить значения, когда у меня есть дубликат. В моем методе функции я использую
JsonConvert.SerializeObject(новый TagModel()));

[Serializable]
  public class TagModel
  {
       public int id { get; set; }
       public int parentId { get; set; }


      public TagModel()
      {

              id = -2147483639;
              parentId = 37;


      }



  }


Что я уже пробовал:

Я пытался передать параметры в конструкторы, но это не сработало.

2 Ответов

Рейтинг:
1

MadMyche

1. то, что у вас есть, уже сериализовано; вы уверены, что не имели в виду десериализовать?
2. у вас нет повторяющихся свойств, у вас есть массив похожих объектов

Newtonsoft может быть использован для этого, чтобы преобразовать JSON в a JArray, которые затем могут быть считаны в коллекцию объектов.

Ссылка:
Преобразование JSON в коллекцию[^]


Рейтинг:
0

Richard Deeming

У вас нет одного объекта с одним и тем же свойством дважды; у вас есть массив, содержащий два объекта, каждый из которых имеет id и parentId свойства однажды.

Сериализация списка TagModel объекты, и вы должны получить ожидаемый вывод JSON.

[Serializable]
public class TagModel
{
    public int id { get; set; }
    public int parentId { get; set; }
}

...

var objectToSerialize = new List<TagModel>
{
    new TagModel { id = -2147483639, parentId = 37 },
    new TagModel { id = -2147483636, parentId = 35 },
};

string json = JsonConvert.SerializeObject(objectToSerialize);