Як отримати дані JSON у звичайній програмі c # з програми ASP.net MVC?

Я новачок в asp.net MVC. Я хочу створити просту програму клієнта C#, яка споживає json, який повернуто з програми proxy mpc asp.net. Який найкращий метод для отримання даних json з сайту asp.net MVC? В даний час я використовую WebRequst, WebResponse і StreamReader для отримання даних. Це хороший метод, інакше як найкраще отримати дані? Чи можу я використовувати щось на зразок нижче? Дуже дякую

    WebRequest request = HttpWebRequest.Create(url);
    WebResponse response = request.GetResponse();  
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string urlText = reader.ReadToEnd();
    //Then parse the urlText to json object
3
Не використовуючи WCF, WebRequest буде добре, і насправді це єдиний варіант, доступний для вас.
додано Автор Simon Halsey, джерело
Оскільки Симон заявив, що він є вашим єдиним варіантом. Ви можете переглянути нові веб-API wcf, такі як HttpClient, що може зробити вам трохи більше сенсу. nuget.org/List/Packages/WebApi.All
додано Автор ElvisLives, джерело
Моє питання полягає в тому, чи добре використовувати WebRequst, WebResponse та StreamReader для отримання json даних з програми asp.net MVC. Дякую
додано Автор c830, джерело

3 Відповіді

Ви не аналізуєте текст на об'єкт JSON на стороні сервера, оскільки JSON - це Javascript Object Notation , і C# нічого про це не знає. Ви аналізуєте рядок JSON на певний тип. Наприклад:

string json = {"Name":"John Smith","Age":34};

Може бути десеріалізовано для класу C# так:

public class Person
{
   public string Name {get;set;}
   public int Age {get;set;}
}

JavascriptSerializer js= new JavascriptSerializer();
Person john=js.Desearialize(json);
4
додано
@ user394128 Я не розумію, чому немає. Суть в тому, що якщо ви отримаєте рядок json у своїй http-відповіді, то зможете побудувати свої об'єкти з цієї рядки json за допомогою Javascript Serializer.
додано Автор Icarus, джерело
Це те, що я шукаю. Але частина мого запитання полягає в тому, чи добре використовувати WebRequst, WebResponse та StreamReader для отримання даних json з програми asp.net MVC або існує якась інша практика. Дякую за ваш час
додано Автор c830, джерело
Дуже дякую! Лкарус
додано Автор c830, джерело

Ви можете використовувати клас JavaScriptSerializer :

var JS = new JavaScriptSerializer();
var person = js.Deserialize(urlText);

Людина, звичайно, повинен бути заміщений вашим власним .NET-типом. Ось також стаття, яка може допомогти вам .

3
додано

Ну, одним із способів є:

var dictionary = new JavaScriptSerializer().Deserialize>(urlText);

Ви можете використовувати різні типи, ніж словник, але чи слід залежить від того, чому ви це робите.

2
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug

ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram