Пятница, 17 Августа 2018, 14:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » C# JSON парсинг
C# JSON парсинг
Ghost_in_the_shellДата: Четверг, 22 Сентября 2016, 19:02 | Сообщение # 1
участник
Сейчас нет на сайте
есть json вида :
Код
{
    type: "", // заголовок сообщения
    data: {
        //Дополнительная информация.
    }
}

стандартный JsonUtility.FromJson оставляет data незаполненным



я как-то не так им пользуюсь или нужно искать другие библиотеки?
LertmindДата: Четверг, 22 Сентября 2016, 19:54 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Во-первых, в JSON переменные в кавычках. Класс надо помечать атрибутом [System.Serializable]. Писать new GGData(); необязательно, если только делать JsonUtility.FromJson. Только что проверил:
// datafile.json
Код
{
    "type": "type1",
    "data": {
        "token": "token1"
    }
}


Код
using System.IO;

using UnityEngine;

[System.Serializable]
public class GGMessage {
    public string type;
    public GGData data = new GGData();
}

[System.Serializable]
public class GGData {
    public string token;
    public string user_id;
    public string channel_id;
    public string errorMsg;
    public int error_num;
    public string channel_name;
    public string user_name;
}

public class SerializationControl1 : MonoBehaviour
{
    string filePath;

    void Start()
    {
        print(Application.persistentDataPath);
        filePath = Path.Combine(Application.persistentDataPath, "datafile.json");
    }
    
    void Update()
    {
        if (Input.GetMouseButtonDown(1))
        {
            string str = File.ReadAllText(filePath);
            GGMessage obj = JsonUtility.FromJson<GGMessage>(str);
            print(obj.data.token);
        }
    }
}


По нажатию правой кнопки выводит token1.
Ghost_in_the_shellДата: Среда, 12 Октября 2016, 00:20 | Сообщение # 3
участник
Сейчас нет на сайте
если в объекте data каждый раз разные свойства, можно как-то подобрать нужный объект на основе параметра type?
TymonrДата: Среда, 12 Октября 2016, 01:20 | Сообщение # 4
With OpenSource forever
Сейчас нет на сайте
Ну перебором все объекты, пока не найдешь нужный тип

Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
Ghost_in_the_shellДата: Среда, 12 Октября 2016, 13:00 | Сообщение # 5
участник
Сейчас нет на сайте
можно ли как-то получить объект data в виде строки или парсить сразу data? поточу что создавать много объектов типа
Код

public class Class1
{
     public string type;
     public DataClass1 data;
}

не хочется
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » C# JSON парсинг
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг