Использование SimpleJSON C # поможет получить информацию - PullRequest
0 голосов
/ 17 мая 2019
  • Не говорите, что есть встроенный в Unity Json или для загрузки Lindq для C # Я использую SimpleJSON

Я пытаюсь прочитать файл json идобавить элементы в список, чтобы я мог их проще вызывать.Я не могу понять, как добавить все значения "Heads" в список.

Так что я мог бы позвонить

listname[index].key
listname[key].value

, чтобы вернуть что-то, где я могу получить пример. ("Small_Cube_Head": {"Colors": {"Default"})

Я в основном хочу иметь возможность вызывать "Small_Cube_Head" и все значения цвета

JSON FILE

{
"Heads":{
        "Large_Cube_Head":["Default","e97451"],
        "Medium_Cube_Head":["Default","ffffff","76d7ea","e97451","5fa777","f4c430","d0ff14","0047ab","e32636","fc419a","720b98","ff8b00","000000","848482"],
        "Small_Cube_Head":["Default"]
        }
    }

}

код

    /**
     * json: Returns the whole file as a String
     **/
    private void LoadJson()
    {
    using (StreamReader r = new StreamReader("Assets/JSON/PlayerPartsList.json"))
    {
        json = r.ReadToEnd();
        //Debug.Log(json);
        JSONNode node = JSON.Parse(json);

        Debug.Log(node["Heads"].Count); //returns 3 
        for (int i = 0; i < node["Heads"].Count; i++) {
            //headParts.Add(node["Heads"].);
            //Debug.Log(node["Heads"][i].Value.ToString());
            //Debug.Log(node["Heads"]["Small_Cube_Head"].Value);

        }
    }
    }

1 Ответ

1 голос
/ 17 мая 2019

Используйте Keys как перечислитель для получения каждого имени главы, а затем вы можете просмотреть счетчик этого заголовка в качестве индекса

KeyEnumerator headNameEnum = node["Heads"].Keys;

while (headNameEnum.MoveNext())
{
    String headName = headNameEnum.Current().Value;

    Debug.Log("headName: " + headName); 
    for (int i=0; i < node["Heads"][headName].Count; i++) {
        String valueName = node["Heads"][headName][i].Value;
        Debug.Log("valueName: " + valueName);
    }

}
...