返回一个字符串数组.net c#web api

时间:2016-01-21 21:14:15

标签: c# asp.net json asp.net-web-api

我是c#和整个.net平台的新手,所以我在很多可能非常基本的东西上挣扎。对我很轻松我现在试图做的就是返回一个json对象数组(显然是字符串)。

[HttpPost]
public string[] PostJsonString([FromBody] string[] arr)
    {

        return arr;

    }

在邮差中,我发送

[{"someProp":"someVal"},{ "aThing":"someOtherThing"}]

非常简单......只是试图回应请求体的确切内容,但由于某种原因,我得到了一个空数组。有谁知道为什么会这样?我尝试将数组作为带str.toArray的字符串返回,但后来又返回了对象类型,即"System.String[]"。我只想要一个简单的JSON响应与数组中的对象。

任何提示都表示赞赏。即使它只是指向一个有用的资源。我已经用尽了所有相关的S / O问题,并且a)没有看到一个完全解决我想要完成的事情,并且b)仍然尝试了一些解决方案无济于事。

2 个答案:

答案 0 :(得分:2)

[HttpPost]
public JsonResult PostJsonString([FromBody] string[] arr)
{
    return Json(arr);
}

答案 1 :(得分:1)

您的控制器将收到单字符串

"[{\"someProp\":\"someVal\"},{ \"aThing\":\"someOtherThing\"}]"

将方法的签名更改为

public string PostJsonString([FromBody] string arr)

如果您想使用JSON数组,我建议您使用JSON.net(又名Newtonsoft.Json)和JArray.ParseJObject.Parse

using Newtonsoft.Json
// ...
JArray a = JArray.Parse(json);
相关问题