@vova_20

Кто может помочь разобраться с парсингом json в C#? Или дать пример парсинга?

Вот что у меня есть:

{
	"GameLevels": [
		{
			"ID": 1,
			"Name": "Level1",
	        "Rows": 6,
	        "Cols": 5,
	        "TilesLayout": [
	          0,0,1,1,1,1,1,0,0,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          0,0,1,1,1,1,1,0,0
	         ],
			 "GameResultSetings": {
				"TargetPoint": 150
			}
		},
		{
			"ID": 2,
			"Name": "Level2",
	        "Rows": 7,
	        "Cols": 7,
	        "TilesLayout": [
	          0,0,1,1,1,1,1,0,0,
	          1,1,1,1,1,1,1,1,1,
	          1,1,1,1,0,1,1,1,1,
	          1,1,1,1,0,1,1,1,1,
	          1,1,1,1,0,1,1,1,1,
	          1,1,1,1,0,1,1,1,1,
	          1,1,1,1,0,1,1,1,1,
	          1,1,1,1,1,1,1,1,1,
	          0,0,1,1,1,1,1,0,0
	         ],
			 "GameResultSetings": {
				"TargetPoint": 150
			}
		}
	]
}


Надо получить данные с файла и использовать их в дальнейшем.
Может кто даст пример как это сделать правильно на C#?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
@Oxoron
Шарпер
Идешь на json2sharp.com, там вбиваешь текст из своего файла.
Тыкаешь Generate.

Получаешь набор классов:
public class GameResultSetings
{
    public int TargetPoint { get; set; }
}

public class GameLevel
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Rows { get; set; }
    public int Cols { get; set; }
    public List<int> TilesLayout { get; set; }
    public GameResultSetings GameResultSetings { get; set; }
}

public class RootObject
{
    public List<GameLevel> GameLevels { get; set; }
}


Потом снова глядишь ответы тут, выдираешь код
internal static class Serializer
    {
        internal static void Serialize<T>(this T arg, string fileName)
        {
            string res = JsonConvert.SerializeObject(arg, Formatting.Indented);
            File.WriteAllText(fileName,res);
        }

        internal static T Deserialize<T>(string fileName)
        {
            string json = File.ReadAllText(fileName);
            T res = JsonConvert.DeserializeObject<T>(json);
            return res;
        }
    }

internal можешь поменять на public.

Там где тебе нужны данные из файла прописываешь
var yourFileFullPath = ...; // Здесь путь к твоему файлу
var gameLevels = Serializer.Deserialize<RootObject>(yourFileFullPath).GameLevels;


В переменной gameLevels у тебя хранится список уровней (List<GameLevel>), используй его с умом. Удачи.

Upd1. Не забудь подключить библиотеку Newtonsoft.json. Как это сделать в Unity - не в курсе, погугли или еще вопрос на тостере задай. Но лучше сначала загугли.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы