Обратиться к полям 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();
}
}
}