我試圖反序列化一些使用JsonConver.DeserializeObject
的json。然而它不適用於我使用的api中的某些json。這裏是一個不起作用的鏈接:https://api.pokemontcg.io/v1/cards?setCode=smpJsonConvert.DeserializeObject有時不工作
這裏是一個可以工作的鏈接。 https://api.pokemontcg.io/v1/cards?setCode=sm2
我不確定它爲什麼有時有效,有時不是。來自它的數據非常相似,只是不同的卡片。 下面是代碼:
public static async Task<T> GetDataAsync<T>(this HttpClient client, string address, string querystring)
where T : class
{
var uri = address;
if (!string.IsNullOrEmpty(querystring))
{
uri += querystring;
}
var httpMessage = await client.GetStringAsync(uri);
var jsonObject = JsonConvert.DeserializeObject<T>(httpMessage);
return jsonObject;
}
現在我的卡類
namespace CardAppReal.Lib.Models
{
public class Card
{
public string id { get; set; }
public string name { get; set; }
public string imageUrl { get; set; }
public string imageUrlHiRes { get; set; }
public string supertype { get; set; } // if pokemon, trainer or energy
public string setcode { get; set; }
public int number { get; set; }
public string set { get; set; }
}
}
一個根
using System.Collections.Generic;
using CardAppReal.Lib.Models;
namespace CardAppReal.Lib.Entities
{
public class RootCard
{
public List<Card> cards { get; set; }
}
}
如果妳可以幫助我我會覺得很神奇。
當它失敗了,它是否會給你一個異常或錯誤信息? – Jason
@Jason不,它只是讓我的jsonObject空着。 –
我建議你仔細比較一個工作結果和一個不工作的結果,找出差異。 – Jason