Як я магу атрымаць дадзеныя ў фармаце JSON ў простай C # праграмы з праграмы ASP.net MVC?

Я пачатковец у asp.net MVC. Я хачу, каб стварыць просты C# кліенцкай праграмы, які спажывае JSON вярнуўся з ASP.NET MVC проножки. Які найлепшы спосаб для вымання дадзеных 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, такія як 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, крыніца
Вялікі дзякуй! Lcarus
дададзена аўтар c830, крыніца

Вы можаце выкарыстоўваць JavaScriptSerializer Клас:

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

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

3
дададзена

Ну, адзін спосаб:

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

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

2
дададзена