我是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)仍然尝试了一些解决方案无济于事。
答案 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.Parse或JObject.Parse
using Newtonsoft.Json
// ...
JArray a = JArray.Parse(json);