c# – 在Console App中反序列化Json

c# – 在Console App中反序列化Json,第1张

概述我正在创建一个Web API端点,它将作为一种服务来检索我们的应用程序配置,执行日志记录等.我遇到的问题是能够在控制台应用程序中反序列化Json. 建立 public class Person{ public string FirstName { get; set; } public string LastName { get; set; } public DateTim 我正在创建一个Web API端点,它将作为一种服务来检索我们的应用程序配置,执行日志记录等.我遇到的问题是能够在控制台应用程序中反序列化Json.

建立@H_419_3@

public class Person{    public string Firstname { get; set; }    public string Lastname { get; set; }    public DateTime DateOfBirth { get; set; }}

Web API@H_419_3@

[httpGet][Route("Person")]public IhttpActionResult GetPerson(){    Person person = new Person    {        Firstname = "Steve",Lastname = "Rogers",DateOfBirth = new DateTime(1920,7,4)    };    return Ok(JsonConvert.SerializeObject(person));}

控制台应用@H_419_3@

using (var clIEnt = new httpClIEnt()){    clIEnt.BaseAddress = new Uri("http://localhost");    var response = clIEnt.GetAsync("API/Person").Result;    var data = response.Content.ReadAsstringAsync().Result;    var person = DeserializeJson<Person>(data);}public static T DeserializeJson<T>(string input){    var result = JsonConvert.DeserializeObject(input);    var result2 = JsonConvert.DeserializeObject(result.ToString());    return JsonConvert.DeserializeObject<T>(result2.ToString());}

值@H_419_3@

data = “\”{\\”Firstname\\”:\\”Steve\\”,\\”Lastname\\”:\\”Rogers\\”,\\”DateOfBirth\\”:\\”1920-07-04T00:00:00\\”}\””@H_419_3@

result = “{\”Firstname\”:\”Steve\”,\”Lastname\”:\”Rogers\”,\”DateOfBirth\”:\”1920-07-04T00:00:00\”}”@H_419_3@

result2 = {{
“Firstname”: “Steve”,
“Lastname”: “Rogers”,
“DateOfBirth”: “1920-07-04T00:00:00”
}}@H_419_3@

我遇到的问题是,在第3次反序列化之前,我无法反序列化为Person对象. result2中的值是我能够成功反序列化为Person的唯一值.有没有更有效的方法来完成这种反序列化?优选地,没有3次迭代.@H_419_3@解决方法 我能够成功运行以下内容(基于 this Microsoft article):

控制台应用:@H_419_3@

static voID Main(string[] args)    {        RunAsync().Wait();    }    static async Task RunAsync()    {        using (var clIEnt = new httpClIEnt())        {            clIEnt.BaseAddress = new Uri("http://localhost:3963/");            clIEnt.DefaultRequestheaders.Accept.Clear();            clIEnt.DefaultRequestheaders.Accept.Add(new MediaTypeWithQualityheaderValue("application/Json"));            httpResponseMessage response = await clIEnt.GetAsync("API/Person");            Person product = await response.Content.ReadAsAsync<Person>();        }    }

控制器:@H_419_3@

public class PersonController : APIController{    public Person GetPerson()    {        Person person = new Person        {            Firstname = "Steve",4)        };        return person;    }}
总结

以上是内存溢出为你收集整理的c# – 在Console App中反序列化Json全部内容,希望文章能够帮你解决c# – 在Console App中反序列化Json所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1244658.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存