Как получить доступ ко всем детям динамически? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть json с некоторыми продуктами, отсортированными по категориям, например:

{
  "Shoes": [
    { "title": "Product One", "price": 100 ... },
    ....
  ],
  "Hats": [
    { "title": "Product 23", "price": 12.2 ... },
    ...
  ]
}

Затем загрузите файл следующим образом:

сохранен в StreamingAssets / products.json.

public class Products {
    public List<Shoes> Shoes;
    public List<Hats> Hats;

    public static Products CreateFromJSON(string json) {

        string filePath = Path.Combine(Application.streamingAssetsPath, "products.json");
        if (File.Exists(filePath)) {
            string dataAsJson = File.ReadAllText(filePath);
            Products p = JsonUtility.FromJson<Products>(dataAsJson);
            return p;
        }

        Debug.Log("Missing JSON file: " + filePath);
        return null;
    }
}


public class Shoes: Model { }

public class Hats: Model { }

public class Model {
    public string title;
    public int price;
    public string sprite;
    ...
}

это отлично работает, загрузка / анализ ..., но

Я хочу получить динамический доступ к Продуктам, чтобы иметь возможность перебирать Products, что-то вроде этого в цикле foreachProducts[nameOfsubCategory][0].title.

В настоящее время реализация работает Products.Shoes[0].title, но это бесполезно и бессмысленно.

1 Ответ

0 голосов
/ 25 марта 2019

Проверьте Linq : вы можете делать такие вещи, как products.Where(p=>p.price>100) и многое другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...