Строка в JSON для 2D Array C # - PullRequest
       8

Строка в JSON для 2D Array C #

0 голосов
/ 28 сентября 2018

Я получаю ответ от httpWebRequest в виде строки, которая является форматом JSON.Я хотел бы изменить эту строку на json, а затем есть два варианта
1) изменить json на двумерный массив
2) изменить json на словарь
Суть в том, что я хочу легкодоступ к переменным.

Это строка, которую я получаю:

"[{\"Year\":2000,\"Name\":\"Ala\",\"Val\":0.5},{\"Year\":2001,\"Name\":\"Ola\",\"Val\":0.6}... {\"Year\":2004,\"Name\":\"Ela\",\"Val\":0.8}]"

Так что, как вы можете видеть, у меня может быть таблица с n строками и 3 столбцами (Year, Name, Val).

Это код, который я использую для получения ответа

            var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:5000/");

        httpWebRequest.ContentType = "application/json";

        httpWebRequest.Method = "POST";
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            //send request data in json format 
            streamWriter.Write(jsonData);
        }
        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            //take data as string
            var result = streamReader.ReadToEnd();
        }
        return null;
    }

Вместо нуля я верну этот массив / словарь.Какой способ лучше?Кто-то знает, как это сделать?Я чувствую себя потерянным в C #.Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 28 сентября 2018

Во-первых, чтобы упростить работу с JSON, вы можете установить Newtonsoft.Json пакет

Install-Package Newtonsoft.Json -Version 11.0.2

Затем добавьте using Newtonsoft.Json;

Посмотрите на этот пример

public class Item
{
    public int Year { get; set; }
    public string Name { get; set; }
    public double Val { get; set; }
}

public class Program
{
    public static void Main()
    {
        string json = "[{\"Year\":2000,\"Name\":\"Ala\",\"Val\":0.5},{\"Year\":2001,\"Name\":\"Ola\",\"Val\":0.6},{\"Year\":2004,\"Name\":\"Ela\",\"Val\":0.8}]";
        List<Item> items = JsonConvert.DeserializeObject<List<Item>>(json);

        foreach(var item in items)
        {
            Console.WriteLine("Year: {0}; Name: {1}; Val: {2}", item.Year, item.Name, item.Val);
        }
    }
}

Здесь я создаю новый класс Item, который будет представлять один объект из массива из вашего JSON.Затем с помощью Newtonsoft.Json десериализуйте строку json в список элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...