@p4p

C# Json в List MyClass как преобразовать?

Есть такой класс с категориями и типами:

public class NamedListBlock
        {
            public string Category;

            public List<string> Types = new List<string>();

            public NamedListBlock(string listName, List<string> theList)
            {
                this.Category = listName;
                this.Types = theList;
            }

        }


Есть json:
{ 
 "Catygocy 01": [ 
 "r1", 
 "r2", 
 "r3", 
 "r4"
 ], 
 "Catygocy 02": [ 
 "x1", 
 "x2", 
 "x3", 
 "x4"
 ], 
 "Catygocy 03": [ 
 "s1", 
 "s2", 
 "s3", 
 "s4"
 ] 
}


Использую SimpleJSON:

var DEC = JSON.Parse("MyJson");

Categories = new List<NamedListBlock>();
List<string> types = new List<string>();

foreach (var c in DEC)
            {
                Debug.Log(c.Key);

                foreach (var t in DEC[c.Key])
                {
                    Debug.Log(t.Value);
                }

            }


тут все хорошо выводится по порядку
категория 1
тип
тип
категория 2
тип типа

Но как мне это дело конвертнуть в мой класс?

Допустим категории я добавлю в цикле

Categories.Add(new NamedListBlock("", null) { Category = n.Key, Types = ?? });

А как извернуться и типы добавить в соответствии с категорями?

foreach (var t in DEC[c.Key])
                {
                    Categories.Find(x => x.Category == c.Key).Types.Add(t.Value);
                    Debug.Log(t.Value);
                }

- так не работает...
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
@BashkaMen
C# программист
static async Task Main(string[] args)
        {
            var data = "{ \r\n \"Catygocy 01\": [ \r\n \"r1\", \r\n \"r2\", \r\n \"r3\", \r\n \"r4\"\r\n ], \r\n \"Catygocy 02\": [ \r\n \"x1\", \r\n \"x2\", \r\n \"x3\", \r\n \"x4\"\r\n ], \r\n \"Catygocy 03\": [ \r\n \"s1\", \r\n \"s2\", \r\n \"s3\", \r\n \"s4\"\r\n ] \r\n}";
            var json = JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(data);

            var result = json.Select(s => new NamedListBlock(s.Key, s.Value));
        }


Сделал с NewtonJson, вам нужно по примеру переделать под SimpleJSON.
Он вам это парсит как Dictionary а дальше его нужно преобразовать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@LiptonOlolo
Вообще, судя по вашему JSON коду можно составить такой класс:
public partial class Temperatures
{
	[JsonProperty("Catygocy 01")]
	public string[] Catygocy01 { get; set; }

	[JsonProperty("Catygocy 02")]
	public string[] Catygocy02 { get; set; }

	[JsonProperty("Catygocy 03")]
	public string[] Catygocy03 { get; set; }
}


Либо приведите ПОЛНЫЙ JSON код, либо пробуйте сами
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Mystery Tag Новосибирск
от 80 000 до 110 000 ₽
от 130 000 до 200 000 ₽
ПРОФЭЛИТ Казань
от 100 000 до 170 000 ₽
30 мар. 2020, в 22:43
1200 руб./за проект
30 мар. 2020, в 22:39
3000 руб./за проект
30 мар. 2020, в 21:09
1000 руб./в час