まずあなたは、直列化復元に使用するカスタムクラスを必要とする:
public class Item
{
public string id { get; set; }
public string name { get; set; }
public string symbol { get; set; }
public string rank { get; set; }
public string price_usd { get; set; }
[JsonProperty(PropertyName = "24h_volume_usd")] //since in c# variable names cannot begin with a number, you will need to use an alternate name to deserialize
public string volume_usd_24h { get; set; }
public string market_cap_usd { get; set; }
public string available_supply { get; set; }
public string total_supply { get; set; }
public string percent_change_1h { get; set; }
public string percent_change_24h { get; set; }
public string percent_change_7d { get; set; }
public string last_updated { get; set; }
}
次に、あなたはあなたのアイテムを取得するには、次のようにNewtonsoft Json、無料のJSONのシリアライズとデシリアライズフレームワークを使用することができます(インクルードusing
文)以下:
using System.Net;
using System.IO;
using Newtonsoft.Json;
private static void start_get()
{
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(string.Format("https://api.coinmarketcap.com/v1/ticker/"));
WebReq.Method = "GET";
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Console.WriteLine(WebResp.StatusCode);
Console.WriteLine(WebResp.Server);
string jsonString;
using (Stream stream = WebResp.GetResponseStream()) //modified from your code since the using statement disposes the stream automatically when done
{
StreamReader reader = new StreamReader(stream, System.Text.Encoding.UTF8);
jsonString = reader.ReadToEnd();
}
List<Item> items = JsonConvert.DeserializeObject<List<Item>>(jsonString);
Console.WriteLine(items.Count); //returns 921, the number of items on that page
}
最後に、要素のリストがitems
に格納されます。
あなたは、情報またはそのJSON結果のオブジェクト表現を含む文字列を何をしたいですか? – ColinM
チェックアウト:https://stackoverflow.com/questions/8270464/best-way-to-call-a-json-webservice-from-a-net-consoleそこには、いくつかの回答があります。 – MattjeS
[.NETコンソールからJSON WebServiceを呼び出すための最良の方法](https://stackoverflow.com/questions/8270464/best-way-to-call-a-json-webservice-from-a-net) -console) – Nasreddine