Parse nested json in unity
13,586
Solution 1
The JsonUtility does not support properties. Just remove the { get; set;}
[System.Serializable]
public class ProductInfo
{
public string title;
}
[System.Serializable]
public class RootObject
{
public ProductInfo product_info;
}
Solution 2
Unity's JSON implementation is much like what a small child would write for their CS1 project. It's "lacking" at best for any serious JSON usage... ;-)
Recommend using: JSON .NET For Unity if you can pony up for it.
Or... use https://github.com/Bekwnn/UnityJsonHelper if you wish to stick with Unity's JSON implementation. This library solves the exact problem you describe.
Author by
Silvering
Updated on June 14, 2022Comments
-
Silvering almost 2 years
I have an issue parsing this json :
{ "product_info": { "title": "Product Name" } }
here is my code :
using UnityEngine; using System.Collections; using System.IO; using System.Net; using UnityEngine.UI; public class ReadJson : MonoBehaviour { public Text myText; [System.Serializable] public class ProductInfo { public string title { get; set; } } [System.Serializable] public class RootObject { public ProductInfo product_info { get; set; } } void Start () { TextAsset asset = Resources.Load (Path.Combine ("Json", "toulouse")) as TextAsset; RootObject m = JsonUtility.FromJson<RootObject> (asset.text); Debug.Log (m.product_info.title); } }
I receive this error message : "Object reference not set to an instance of an object". I already tried, with success to parse a not nested json but not I don't understand why but doesn't work even after created the appropriated class.