在ASP.Net中创建JSON对象

Mat*_*ete 2 c# json asp.net-core

我试图在.Net 5应用程序中创建一个JSON对象.我带有默认的选项是Microsoft.AspNet.Mvc.Formatters.Json,Microsoft.Extensions.Configuration.JsonNewtonsoft.Json当我使用Visual Studio 2015年入住的操作Json.我的理解是,Configuration.Json对于阅读形式,appsettings.json所以它可能不是我将用于创建JSON对象.我找不到任何真实的信息Formatters.Json,如何使用它,或者它的用途是什么.Newtonsoft.Json将被记录,但它是否更好Formatters.Json?我应该使用哪两个?

Ada*_*SFT 5

直接从ASP.NET Core 1测试中获取

var expected = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new { foo = "abcd" }));

同样取自测试并稍加修改,使用HttpClient调用它以查看如何将json字符串发送到服务器.

var response = await Client.PostAsync(
                "http://localhost/api/ActionUsingSpecificFormatters",
                new StringContent(yourJsonContent, Encoding.UTF8, "application/json"));

按照牛顿软件,你可以简单地编码,然后做任何你想做的事情.

Product product = new Product();
product.Name = "Apple";
product.ExpiryDate = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };

string output = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "ExpiryDate": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject(output);

把它们放在一起 - 我刚测试了这个.请记住,这是一个真正的通用测试,来自MVC 6(ASP.NET 5即ASP.NET Core 1):)

[HttpGet]
public async Task<string> Get()
{
    var client = new HttpClient();
    var customer = new Customer() { Name = "Schmo", Address = "1999 Purple Rain St" };

    var customerJson = JsonConvert.SerializeObject(customer);
    var response = await client.PostAsync(
                    "http://localhost:4815/api/Customer",
                    new StringContent(customerJson, Encoding.UTF8, "application/json"));


    //just some template output to test which I'm getting back.
    string resultJson = "{ 'Name':'adam'}";

    if (response.StatusCode == HttpStatusCode.OK)
    {
        resultJson = await response.Content.ReadAsStringAsync();
        var updatedCustomer = JsonConvert.DeserializeObject(resultJson);
    }


    return resultJson;
}

public class Customer
{
    public string Name { get; set; }
    public string Address { get; set; }
}