【发布时间】:2014-06-21 01:43:45
【问题描述】:
我目前正在使用 JSON.NET 从多个 Web API 获取信息,正如在之前的 q&a. 中向我解释的那样,但现在我偶然发现了另一种我无法解析的 Web API,因为我不不知道怎么做。就是这个:https://data.bter.com/api/1/tickers
如您所见,它是一个 json 交易对集合。但是集合本身是未命名的,所以我必须为每个交易对创建一个类,这并不是真正动态的。我正在使用以下内容来解析网址:
public static T DownloadSerializedApi<T>(string address) where T : new()
{
T newT = new T();
HttpClient client = new HttpClient();
using (Stream s = client.GetStreamAsync(address).Result)
using (StreamReader sr = new StreamReader(s))
using (JsonReader reader = new JsonTextReader(sr))
{
JsonSerializer serializer = new JsonSerializer();
newT = serializer.Deserialize<T>(reader);
}
return newT;
}
现在我想将 T 设置为“TradingPairs”类,其中会有一个包含所有交易对的列表。但在我现在看来,这将是一长串硬编码对:(
有人愿意帮助我吗? ;)
【问题讨论】:
-
您是否尝试过仅使用您现在拥有的代码? Json.Net 不应该关心是否有类型名称。
-
那行不通。我无法制作“Dictionary
Pairs”,因为没有什么叫做 Pairs,但必须有一个简单的方法。如果您将该链接放入json2csharp.com,您会发现即使在那里,每一对都有自己的类,但效率并不高:( -
您应该能够创建一个具有适当属性的类
Pair,并使用JsonProperty属性将json 映射到这些属性。当我回到办公桌前,我会提供更完整的解决方案。
标签: c# json json.net asp.net-web-api