我正在尝试从网络上下载json并进行解析,然后获取数据并进行存储,但是当我从服务器获取json时,我无法对其进行解析,因为它会为某些值返回null有一个值,当我尝试获取特定数据时,它将返回实际的null错误。现在我知道这个问题已经被问过很多次了。我确实进行了搜索并尝试了许多解决方案,但是似乎对我没有任何帮助……我使用json来生成我的json类,以便将数据存储在jsoncsharp Link
中这是我下载的json
{
"status": "success",
"result": {
"slug": "test",
"id": "26",
"timer_1": "15",
"timer_2": "10",
"pass_1": "aaaa",
"pass_2": "bbbb",
"count": "4",
"port": "66",
"network": "*******************",
"network2": "******************",
"network_api_consumer_key": "******************",
"network_api_consumer_secret": "******************",
"network_api_user_access_token": "******************",
"network_api_user_access_secret": "******************"
}
}
这是我存储值的类。这是由jsoncsharp生成的
[System.Serializable]
public class Result
{
public string slug { get; set; }
public string id { get; set; }
public string timer_1 { get; set; }
public string timer_2 { get; set; }
public string pass_1 { get; set; }
public string pass_2 { get; set; }
public string count { get; set; }
public string port { get; set; }
public string network { get; set; }
public string network2 { get; set; }
public string network_api_consumer_key { get; set; }
public string network_api_consumer_secret { get; set; }
public string network_api_user_access_token { get; set; }
public string network_api_user_access_secret { get; set; }
}
[System.Serializable]
public class root
{
public string status { get; set; }
public Result result { get; set; }
}
这是我下载时的方法
IEnumerator Fetch(string url)
{
UnityWebRequest www = UnityWebRequest.Get(url);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
// Show results as text
Debug.Log(www.downloadHandler.text);
string jsonString = www.downloadHandler.text;
root data = JsonUtility.FromJson<root>(jsonString);
Debug.Log(data.status); //returns text null
Debug.Log(data.result.port); // returns actual null error
}
}
谢谢。
答案 0 :(得分:2)
JsonUtility不支持属性。您需要删除所有
{ get;set; }