在 Unity 中使用数值属性反序列化 Json



我正在尝试从 CURL 获取特定数据,但我得到了整个数据 这是使用

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

public class getRequest : MonoBehaviour {
// Use this for initialization
void Start () {
string url = "https://blockchain.info/ticker";
WWW www = new WWW(url);
StartCoroutine(WaitForRequest(www));
}
IEnumerator WaitForRequest(WWW www)
{
yield return www;
// check for errors
if (www.error == null)
{            
Debug.Log("WWW Ok!: " +www.text);
}
else
{
Debug.Log("WWW Error: " + www.error);
}
}
}

像这样的格庭输出

WWW Ok!: { "USD" : {"15m" : 1740.01, "last" :

1740.01, "买入" : 1740.01, "卖出" : 1744.74, "符号" : "$"}, "ISK" : {"15m" : 179479.11, "最后" : 179479.11, "买入" : 179479.11, "卖出" : 179967, "符号" : "kr"}, "HKD" : {"15m" : 13551.08, "最后" : 13551.08, "买入" : 13551.08, "卖出" : 13587.92, "符号" : "$"}, "TWD" : {"15m" : 52292.17, "最后" : 52292.17, "买入" : 52292.17, "卖出" : 52434.32, "符号" : "NT$"}, "瑞士法郎" : {"15m" : 1733.63, "最后" : 1733.63, "买入" : 1733.63, "卖出" : 1738.35, "符号" : "CHF"}, "EUR" : {"15m" : 1584.76, "最后" : 1584.76, "买入" : 1584.76, "卖出" : 1589.07, "符号" : "€"}, "DKK" : {"15m" : 11790.2, "最后" : 11790.2, "买入" : 11790.2, "卖出" : 11822.25, "符号" : "kr"}, "CLP" : {"15m" : 1161247.87, "最后" : 1161247.87, "买入" : 1161247.87, "卖出" : 1164404.58, "交易品种" : "$"}, "CAD" : {"15m" : 2373.57, "最后" : 2373.57, "买入" : 2373.57, "卖出" : 2380.02, "符号" : "$"}, "INR" : {"15m" : 111442.86, "最后" : 111442.86, "买入" : 111442.86, "卖出" : 111745.8, "符号" : "₹"}, "CNY" : {"15m" : 11994.67, "收盘" : 11994.67, "买入" : 11994.67, "卖出" : 12027.28, "符号" : "¥"}, "THB" : {"15m" : 60079.94, "最后" : 60079.94, "买入" : 60079.94, "卖出" : 60243.26, "符号" : "฿"}, "澳元" : {"15m" : 2342.53, "最后" : 2342.53, "买入" : 2342.53, "卖出" : 2348.9, "符号" : "$"}, "SGD" : {"15m" : 2434.82, "最后" : 2434.82, "买入" : 2434.82, "卖出" : 2441.44, "符号" : "$"}, "KRW" : {"15m" : 1943939.17, "最后" : 1943939.17, "买入" : 1943939.17, "卖出" : 1949223.53, "符号" : "₩"}, "日元" : {"15m" : 197725.17, "最后" : 197725.17, "买入" : 197725.17, "卖出" : 198262.66, "符号" : "¥"}, "PLN" : {"15m" : 6655.07, "最后" : 6655.07, "最后" : 6655.07, "卖出" : 6673.16, "符号" : "zł"}, "英镑" : {"15m" : 1347.87, "最后" : 1347.87, "买入" : 1347.87, "卖出" : 1351.53, "符号" : "£"}, "SEK" : {"15m" : 15356.67, "最后" : 15356.67, "买入" : 15356.67, "卖出" : 15398.41, "符号" : "kr"}, "NZD" : {"15m" : 2522.84, "最后" : 2522.84, "买入" : 2522.84, "卖出" : 2529.69, "符号" : "$"}, "BRL" : {"15m" : 5391.27, "最后" : 5391.27, "买入" : 5391.27, "卖出" : 5405.92, "符号" : "R$"}, "RUB" : {"15m" : 98152.22, "最后" : 98152.22, "买入" : 98152.22, "卖出" : 98419.04, "符号" : "RUB"} }

但是我想要这样的输出 美元 1740.01 $任何人都可以帮我吗

标记为重复项,但在我意识到 Unity 不支持 JSON 中的第一个值后重新打开。Unity 的JsonUtility无法反序列化以整数(如15m)开头的 json 数据。它可以反序列化该 JSON 中的其他数据,但您只想反序列化15m变量。

从 Unity 的 wiki 下载SimpleJSON

使用SimpleJSON,这就是您获得美元1500 万价值的方式:

var N = JSON.Parse(www.text);
string prize = N["USD"]["15m"].Value;
Debug.Log(prize);

不要忘记导入带有using SimpleJSON;SimpleJSON

最新更新