Почему мой код C # получает некоторые URL-адреса JSON, а другие нет? - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь создать свой собственный файл JSON для чтения в Unity 3D, однако я не могу заставить его работать.Мой код в порядке с URL-адресами JSON, которые я не создал.Что я могу сделать с моим JSON, чтобы убедиться, что он выбран в Unity / C #?

Я попытался экспортировать свой Google Sheet в 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)

Захват экрана ошибкиесли «Вторая попытка» не закомментирована Изображение на экране, как описано

...