我正在创建一个小型的无状态API类型的东西,它从单个API中提取信息,仅获取相关数据,获取数据并将其用作第二个API中的搜索字词。然后,我只想从这里获取相关信息,并将其返回给用户。
JSON返回的单个数组中包含许多值(其中大多数不是必需的),根据我的理解,我需要将字符串反序列化为单个对象,以便随后执行.Count
来找出已退回的卡数。
JSON字符串很大,因此如果有人感兴趣,我将仅保留此链接。 https://api.pokemontcg.io/v1/cards?name=POKEMONNAME
我已经尝试过的东西
var obj = JsonConvert.DeserializeObject<PokemonTCGApi>(data);
List<PokemonTCGApi> obj = JsonConvert.DeserializeObject<List<PokemonTCGApi>>(data);
PokemonTCGApi[] objList = new JavaScriptSerializer().Deserialize<Order[]>(orderJson);
var obj = JsonConvert.DeserializeObject(data);
List<JSONClass.Card> list = JsonConvert.DeserializeObject<List<JSONClass.Card>>(data);
public class PokemonTCGApi
{
public string cardName { get; set; }
public string imageUrl { get; set; }
public string Types { get; set; }
public string Artist { get; set; }
public PokemonTCGApi(string cardName, string imageUrl, string types, string artist)
{
this.cardName = cardName;
this.imageUrl = imageUrl;
Types = types;
Artist = artist;
}
public PokemonTCGApi(string cardName)
{
this.cardName = cardName;
}
}
答案 0 :(得分:1)
如果您不需要json字符串中的每个值,请创建一个class对象,将您需要反序列化的内容进行响应,并这样做。
var data = JsonConvert.DeserializeObject<List<EmployeeViewModel>>(json_array_string);
var data1 = JsonConvert.DeserializeObject<EmployeeViewModel>(json_string);
答案 1 :(得分:0)
您可以反序列化到列表,然后仅从列表中获取相关位。
var myData = JsonConvert.DeserializeObject<List<ExpandoObject>>(jsonString);