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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5