Обратиться к полям json файла - C#
Формулировка задачи:
Здравствуйте! Нужно обратиться к полям файла расхоложенного на сервере Date Open High Low Close Volume Adj_Close вот код.
WebRequest request = WebRequest.Create("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20=%20%22TIBX%22%20and%20startDate%20=%20%222013-01-01%22%20and%20endDate%20=%20%222014-01-01%22&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys"); WebResponse response = request.GetResponse(); using (Stream stream = response.GetResponseStream()) { Type serializationTargetType = typeof(JsonContract); DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(serializationTargetType); JsonContract jsonDeserialized = (JsonContract)jsonSerializer.ReadObject(stream); gv_information.DataSource = jsonDeserialized.query.results.quote; DataBind(); }
public class JsonContract { public QueryContract query { get; set; } } public class QueryContract { public string count { get; set; } public string created { get; set; } public string lang { get; set; } public DiagnosticsContract diagnostics { get; set; } public ResultsContract results { get; set; } } public class ResultsContract { public List<QuoteContract> quote { get; set; } } public class QuoteContract { //public string Symbol { get; set; } public string Date { get; set; } public string Open { get; set; } public string High { get; set; } public string Low { get; set; } public string Close { get; set; } public string Volume { get; set; } public string Adj_Close { get; set; } } public class DiagnosticsContract { public List<UrlContract> url { get; set; } public string publiclyCallable { get; set; } public List<CacheContract> cache { get; set; } public List<Query2Contract> query { get; set; } public JavascriptContract javascript { get; set; } } [DataContract] public class UrlContract { [DataMember(Name = "execution-start-time")] public string ExecutionStartTime { get; set; } [DataMember(Name = "execution-stop-time")] public string ExecutionStopTime { get; set; } [DataMember(Name = "execution-time")] public string ExecutionTime { get; set; } [DataMember(Name = "content")] public string Content { get; set; } } public class CacheContract { } public class Query2Contract { } public class JavascriptContract { }
Может быть это можно сделать при помощи foreach?
Решение задачи: «Обратиться к полям json файла»
textual
Листинг программы
using ConsoleApplication7.Logic; using Newtonsoft.Json; using System; using System.IO; using System.Net; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { var uri = new Uri("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20=%20%22TIBX%22%20and%20startDate%20=%20%222013-01-01%22%20and%20endDate%20=%20%222014-01-01%22&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys"); var request = WebRequest.Create(uri); var response = request.GetResponse(); RootObject data = null; using (var responseStreamReader = new StreamReader(response.GetResponseStream())) { var resultQuery = responseStreamReader.ReadToEnd(); data = JsonConvert.DeserializeObject<RootObject>(resultQuery); } Console.WriteLine("Query.Count: {0}", data.Query.Count); Console.WriteLine("Query.Created: {0}", data.Query.Created); Console.WriteLine("Query.Lang: {0}", data.Query.Lang); Console.WriteLine("Query.Diagnostics: {0}", data.Query.Diagnostics); Console.WriteLine("Query.Results: {0}", data.Query.Results); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д