我真的需要帮助解决JSON问题。
这是我的JSON:https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=USD
这是我到目前为止的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
public class StockManager : MonoBehaviour {
private string webString;
private CurrencyContainer container;
[SerializeField]private int currenciesToLoad;
void Start()
{
StartCoroutine(GetText());
}
void Update()
{
if (container != null)
{
Debug.Log (container.Arr);
}
else
{
Debug.Log ("null");
}
}
IEnumerator GetText()
{
using (WWW www = new WWW("https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=USD"))
{
yield return www;
if (www.error != null)
{
Debug.Log("Error is : " + www.error);
}
else
{
webString = "{ \"Arr\":" + www.text + "}";
container = JsonConvert.DeserializeObject<CurrencyContainer> (webString);
}
}
}
[System.Serializable]
public class Datum
{
public int time;
public double close;
public double high;
public double low;
public double open;
public double volumefrom;
public double volumeto;
}
[System.Serializable]
public class ConversionType
{
public string type;
public string conversionSymbol;
}
[System.Serializable]
public class Example
{
public string Response;
public int Type;
public bool Aggregated;
public IList<Datum> Data;
public int TimeTo;
public int TimeFrom;
public bool FirstValueInArray;
public ConversionType ConversionType;
}
[System.Serializable]
public class CurrencyContainer
{
public Example[] Arr;
}
}
我得到的错误是:JsonSerializationException:无法将当前JSON对象(例如{&#34; name&#34;:&#34; value&#34;})反序列化为类型&#39; StockManager + Example [] &#39;因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。
我不知道如何修复,我们非常感谢任何帮助。 非常感谢。
答案 0 :(得分:1)
您的对象结构中有“一级到多级”,因为给定的JSON仅在您的类型Example
的“项目”上。请尝试以下方法:
var item = JsonConvert.DeserializeObject<Example>(www.text);
在行动中查看HERE。