从JSON创建Unity变量文本

时间:2018-11-15 04:52:08

标签: c# json rest unity3d

仅搜索此问题似乎带来了非常复杂的解决方案,而且我觉得语法中有些简单的东西。 我设法更改了链接到天气api的文本,但是需要从RestfulDB api中进行相同的操作。 这是我的脚本,第一个起作用...

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

public class ForecastController : MonoBehaviour
{
    public GameObject helloworld;
    IEnumerator AdjustSkyToWeather()
    {
        while (true)
        {
            string weatherUrl = "http://api.openweathermap.org/data/2.5/forecast?zip=2000,au&APPID=d38ee94695788506fb6b2be25a1b7303";

            WWW weatherWWW = new WWW(weatherUrl);
            yield return weatherWWW;

            JSONObject tempData = new JSONObject(weatherWWW.text);

            Debug.Log(tempData["list"][0]["main"]["humidity"]);
            helloworld.GetComponent<TextMesh>().text = tempData["list"][0]["main"]["humidity"].ToString();


            yield return new WaitForSeconds(60);
        }
    }

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

这是有问题的人...

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

public class iotAPIScript : MonoBehaviour
{
    public GameObject iotText;
    IEnumerator GetIoTData()
    {
        while (true)
        {
            string iotDBURL = "https://iotar01-ad83.restdb.io/rest/test-collection/5be9faed3dca561f00004ab7";

            WWW iotDB = new WWW(iotDBURL);
            yield return iotDB;

            JSONObject tempData = new JSONObject(iotDB.text);

            Debug.Log(tempData["iottest03"]);
            iotText.GetComponent<TextMesh>().text = tempData["iottest03"].ToString();


            yield return new WaitForSeconds(60);
        }
    }
}

使用api时,最终结果应该是将“ iotAR”文本更改为“ 10011”。

此视频显示了它的外观:https://youtu.be/wZD56iL4UJU

谢谢!


更新

这是JSON来源:

 {
    "_id":"5be9faed3dca561f00004ab7",
    "Test value":"101",
    "testRound02":"0010101",
    "iottest03":"10011"
} 

这是控制台显示的内容,没有错误,但没有获取RestDB ...

console

0 个答案:

没有答案