将字符串转换为JSON对象

Sam*_*ain -3 c# json unity-game-engine

我有一个JsonString:

"baseAbilities":"[{"baseId":1,"name":"Focused Elemental Strike"}]"
Run Code Online (Sandbox Code Playgroud)

我想做到:

"baseAbilities":[{"baseId":1,"name":"Focused Elemental Strike"}]
Run Code Online (Sandbox Code Playgroud)

因此,JSON实用程序很容易对其进行反序列化.有什么建议

编辑:

这基本上是以下Json字符串中的json对象:

{"data":[{"id":9,"name":"Sam5","baseAbilities":"[{\"baseId \":1,\"name \":\"Focused Elemental Strike \"} {\ "了baseid \":9,\ "名称\":\ "清洗\"}]"]}

后端开发人员将JSON作为字符串保存在列baseAbilities中.现在我无法访问后端API.所以我需要将此字符串baseAbilities转换为JSON,以便我可以访问其中的对象.

现在我使用这些类来解码JSON:

[System.Serializable]
    class GetBAResult
    {
        public List<bounceAbilityData> data;
    }

    [System.Serializable]
    class bounceAbilityData
    {
        public int id;
        public string name;
        public string baseAbilities;
    }
Run Code Online (Sandbox Code Playgroud)

这就是我解码JSON的方式:

GetBAResult P = JsonUtility.FromJson<GetBAResult>(w.text);
        for (int i = 0; i < P.data.Count; i++)
        {
            Debug.Log(P.data[i].name);
            GameObject layoutGroupNameButton = (GameObject)Instantiate(prefabBAButton);
            layoutGroupNameButton.transform.SetParent(ParentPanel, false);
            layoutGroupNameButton.GetComponentInChildren<Text>().text = P.data[i].name;
            layoutGroupNameButton.GetComponent<BounceAbilityButton>().id = P.data[i].id;
            layoutGroupNameButton.GetComponent<BounceAbilityButton>().name = P.data[i].name;
            Debug.Log(P.data[i].baseAbilities);
        }
Run Code Online (Sandbox Code Playgroud)

我需要在baseAbilities中获取内容,例如"baseID"和"name"

小智 8

你试过这个吗?

 JObject json = JObject.Parse(str);
Run Code Online (Sandbox Code Playgroud)

文件

  • 对于选民来说,由于Unity的.NET版本,这在Unity中不起作用.我认为这不是OP所要求的.OP只想从json字符串中删除```. (3认同)