JsonConver.DeserializeObject
を使用してjsonをデシリアライズしようとしています。しかし、それは私が使用しているAPIからいくつかのJSONで動作していない。ここにはうまくいかないリンクがあります:https://api.pokemontcg.io/v1/cards?setCode=smpJsonConvert.DeserializeObjectが動作しない場合があります
ここには動作するリンクがあります。 https://api.pokemontcg.io/v1/cards?setCode=sm2
なぜ時にはうまくいかず、時にはうまくいかないと思います。そこから出てくるデータはお互いに非常によく似ていますが、異なるカードだけです。 uは私を助けることができる私はそれは素晴らしい見つけるだろう場合
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