相关疑难解决方法(0)

Web API 2:如何在对象及其子对象上返回带有camelCased属性名称的JSON

UPDATE

感谢所有的答案.我正在进行一个新项目,看起来我终于找到了底层:看起来下面的代码实际上应该归咎于:

public static HttpResponseMessage GetHttpSuccessResponse(object response, HttpStatusCode code = HttpStatusCode.OK)
{
    return new HttpResponseMessage()
    {
        StatusCode = code,
        Content = response != null ? new JsonContent(response) : null
    };
}
Run Code Online (Sandbox Code Playgroud)

别处...

public JsonContent(object obj)
{
    var encoded = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } );
    _value = JObject.Parse(encoded);

    Headers.ContentType = new MediaTypeHeaderValue("application/json");
}
Run Code Online (Sandbox Code Playgroud)

假设它是WebAPI,我忽略了看似无害的JsonContent但没有.

这在任何地方都可以使用......我能说第一个,wtf吗?或许应该是"为什么他们这样做?"


原始问题如下

人们会认为这将是一个简单的配置设置,但现在我已经躲过太久了.

我看过各种解决方案和答案:

https://gist.github.com/rdingwall/2012642

似乎不适用于最新的WebAPI版本......

以下似乎不起作用 - 属性名称仍然是PascalCased.

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;

json.UseDataContractJsonSerializer = true;
json.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;

json.SerializerSettings.ContractResolver …
Run Code Online (Sandbox Code Playgroud)

.net c# json.net asp.net-web-api asp.net-web-api2

95
推荐指数
5
解决办法
8万
查看次数

在Web API控制器中构建JSON响应

在WebAPI项目中,我有一个控制器,它根据用户输入的值检查产品的状态.

让我们说他们输入"123"并且响应应该是"状态":1,和产品列表.如果输入"321",则"状态"为0,以及产品列表.

我的问题是,如何在WebAPI控制器中构建正确的字符串.

[Route("{value:int}")]
public string GetProducts(int value)
{
    var json = "";
    var products = db.Products;
    if (products.Any())
    {
        foreach (var s in products)
        {
            ProductApi product = new ProductApi();
            product.Name = s.Name;
            json += JsonConvert.SerializeObject(supplier);
        }
    }

    var status = db.Status;
    if (status.Any())
    {
        json += "{status:1}";
    }
    else
    {
        json += "{status:0}";
    }

    return json;
}

public class ProductApi
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

此外,此输出/响应是否有效?

[
    {
        "id":1,
        "name":"product name"
    },
    {
        "id":2, …
Run Code Online (Sandbox Code Playgroud)

c# json asp.net-web-api asp.net-web-api2

17
推荐指数
1
解决办法
9万
查看次数

标签 统计

asp.net-web-api ×2

asp.net-web-api2 ×2

c# ×2

.net ×1

json ×1

json.net ×1