Unity C#Json读/写

Unity C#Json读/写,c#,json,read-write,C#,Json,Read Write,我的代码正在引用 在我的LoadJson()方法中有一个注释掉的print语句,用于显示我知道它应该是的某个json值 x["Character0"]["Head"].ToString() 为了显示head值,我认为我的问题是返回类型in方法 public static SaveCharacters CreateFromJSON(string jsonString) 但是我对C语言中的Json感到困惑,任何帮助都很好,我还没有找到任何有用的解决方案 Json文件 { "Character0

我的代码正在引用

在我的LoadJson()方法中有一个注释掉的print语句,用于显示我知道它应该是的某个json值

x["Character0"]["Head"].ToString()
为了显示head值,我认为我的问题是返回类型in方法

 public static SaveCharacters CreateFromJSON(string jsonString)
但是我对C语言中的Json感到困惑,任何帮助都很好,我还没有找到任何有用的解决方案

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);
}
}
代码

{
"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);
}
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用System.IO;
[系统可序列化]
公共类存储字符
{
私有字符串json;
私弦头、颈、身、臂、腿;
私有静态SaveCharacters\u实例;
公共静态SaveCharacters实例{get{return}
无效唤醒(){
如果(_实例!=null)
{
_实例=此;
}
}
//在第一帧更新之前调用Start
公众假期开始()
{
LoadJson();
}
私有void LoadJson()
{
使用(StreamReader r=newstreamreader(“Assets/JSON/CustomCharacters.JSON”))
{
json=r.ReadToEnd();
Log(json);
SaveCharacters x=CreateFromJSON(json);
//Debug.Log(x[“”][“”]);
}
}
公共无效加载(字符串savedData)
{
JsonUtility.FromJsonOverwrite(savedData,this);
}
公共字符串SaveToString()
{
返回JsonUtility.ToJson(this);
}
公共静态SaveCharacters CreateFromJSON(字符串jsonString)
{
返回JsonUtility.FromJson(jsonString);
}
}

假设您有这个Json文件:

{
  "Player": {
    "Score": 1
  },
  "Teams":{
    "Levels": {
      "Level": 1
    }
  }
}
您希望得到分数值:

首先:下载此库

然后这样称呼它:

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

这是否允许简单地编辑json文件中的值或向json文件中添加/删除对象?您可以使用此资产[json.NET For Unity]()进行读写和序列化对象。