Unity C # Json Чтение / Запись - PullRequest
1 голос
/ 08 мая 2019

Мой Код ссылается https://docs.unity3d.com/ScriptReference/JsonUtility.html

Внутри моего метода LoadJson () есть закомментированный оператор печати, показывающий определенное значение json, которое, я знаю, будет

x["Character0"]["Head"].ToString()

чтобы отобразить заголовок Value, я думаю, что моя проблема в типе возврата в методе

 public static SaveCharacters CreateFromJSON(string jsonString)

Но я в недоумении с Json в C #, любая помощь будет полезна, я не нашел никаких полезных решений.

Файл Json

{
"Character0":{
    "Head":"HeadCube",
    "Neck":"NeckCube",
    "Body":"BodyCube",
    "Arms":"Sphere_Capsule_Arms",
    "Legs":"Sphere_Capsule_Legs"
    }
}

Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

[System.Serializable]
public class SaveCharacters
{
private string json;
private string Head, Neck, Body, Arms, Legs;

private static SaveCharacters _Instance;

public static SaveCharacters Instance { get { return _Instance; } }
void Awake() {
    if (_Instance != null)
    {
        _Instance = this;
    }
}
// Start is called before the first frame update
public void starts()
{
    LoadJson();
}

private void LoadJson()
{
    using (StreamReader r = new StreamReader("Assets/JSON/CustomCharacters.json"))
    {
        json = r.ReadToEnd();
        Debug.Log(json);
        SaveCharacters x =CreateFromJSON(json);

        //Debug.Log(x[""][""]);
    }
}
public void Load(string savedData)
{
    JsonUtility.FromJsonOverwrite(savedData, this);
}
public string SaveToString()
{
    return JsonUtility.ToJson(this);
}
public static SaveCharacters CreateFromJSON(string jsonString)
{
    return JsonUtility.FromJson<SaveCharacters>(jsonString);
}
}

1 Ответ

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

Предположим, у вас есть этот файл Json:

{
  "Player": {
    "Score": 1
  },
  "Teams":{
    "Levels": {
      "Level": 1
    }
  }
}

и вы хотите получить значение балла:

Сначала: скачайте эту библиотеку SimpleJson

и затем назовите это так:

JSONNode node = JSON.Parse( jsonString );
string score = node["Player"]["Score"].Value;
...