统一解析嵌套的json [重复]

Posted

技术标签:

【中文标题】统一解析嵌套的json [重复]【英文标题】:Parse nested json in unity [duplicate] 【发布时间】:2016-10-20 13:30:05 【问题描述】:

我在解析这个 json 时遇到问题:


    "product_info":
    
        "title": "Product Name"
    

这是我的代码:

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);

    

我收到此错误消息:“对象引用未设置为对象的实例”。我已经尝试过,成功解析了一个非嵌套的 json,但我不明白为什么,但即使在创建了适当的类之后也不起作用。

【问题讨论】:

如果你将RootObject定义为一个动态对象,这能帮助你找出必要的结构吗? 【参考方案1】:

JsonUtility 不支持属性。只需删除 get;设置;

[System.Serializable]
public class ProductInfo

    public string title;


[System.Serializable]
public class RootObject

    public ProductInfo product_info;

【讨论】:

非常感谢!有一天正在寻找这个解决方案!再次感谢!【参考方案2】:

Unity 的 JSON 实现非常类似于小孩子为他们的 CS1 项目编写的内容。对于任何严重的 JSON 使用,它充其量是“缺乏”... ;-)

如果你愿意的话,推荐使用:JSON .NET For Unity

或者...如果您希望坚持使用 Unity 的 JSON 实现,请使用 https://github.com/Bekwnn/UnityJsonHelper。该库解决了您描述的确切问题。

【讨论】:

这也很棒而且免费:wiki.unity3d.com/index.php?title=JSONObject

以上是关于统一解析嵌套的json [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Newtonsoft 解析带有嵌套和变量字典的 Json [重复]

在Android中解析嵌套的JSONObject [重复]

我的 JSON 数据是不是应该包含嵌套字段而不是重复信息?

附加到嵌套 JSON 字典的顶部 [重复]

如何迭代嵌套的 JSON 对象 [重复]

如何将嵌套的json转换为数据框[重复]