为什么我的C#代码选择一些JSON URL,但不选择其他URL?

时间:2019-04-29 07:07:40

标签: c# json database unity3d iot

我正在尝试创建自己的JSON文件以在Unity 3D中读取,但是我无法使其正常工作。但是,我的代码可以使用我尚未创建的JSON URL很好。我该如何处理JSON以确保在Unity / C#中将其提取?

我尝试使用基本方法将Google表格导出为JSON,然后尝试使用Sheetsu,但是没有运气。它可以与示例JSON url一起使用...

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GoogleSheetJSON : MonoBehaviour


{

public GameObject GSvariable;
IEnumerator UpdateText()
{
    while (true)
    {
            //First attempt
            //string jsonUrl = "https://spreadsheets.google.com/feeds/cells/1wqo8gFMC6FHo7G3mrMVZap-eGsp1Z-nxaQ2AcAQ4dKk/1/public/full?alt=json";

            //Second attempt
            //string jsonUrl = "https://sheetsu.com/apis/v1.0su/f54be9f9d696";

            //External JSON url
            string jsonUrl = "https://jsonplaceholder.typicode.com/todos/1";

            WWW googleSheetWWW = new WWW(jsonUrl);
        yield return googleSheetWWW;

        JSONObject tempData = new JSONObject(googleSheetWWW.text);

            //First attempt
            //Debug.Log(tempData["entry"]["0"]["gs$cell"]["inputValue"]);
            //GSvariable.GetComponent<TextMesh>().text = tempData["entry"]["0"]["gs$cell"]["inputValue"].ToString();

            //Second attempt
            //Debug.Log(tempData["timestamp"]);
            //GSvariable.GetComponent<TextMesh>().text = tempData["timestamp"].ToString();

            //External JSON url
            Debug.Log(tempData["title"]);
            GSvariable.GetComponent<TextMesh>().text = tempData["title"].ToString();

            yield return new WaitForSeconds(60);
    }
}

void Start()
{
    StartCoroutine(UpdateText());
}
}

我认为很明显,我的JSON文件管理不正确,但是我不明白为什么考虑到它们在公共URL上它们不起作用。

当我取消第二次尝试的注释时,我希望看到占位符文本“ Google Sheet =“成为“,测试4”,但在播放时出现以下Unity错误:

NullReferenceException:对象引用未设置为对象的实例 GoogleSheetJSON + c__Iterator0.MoveNext()(在Assets / Scripts / GoogleSheetJSON.cs:36处)

Screen grab of error if 'Second attempt' is uncommented Screen grab of code as described

0 个答案:

没有答案