Javascript 将c#字符串[]转换为json

Javascript 将c#字符串[]转换为json,javascript,c#,json,Javascript,C#,Json,我有一个方法将字符串[]返回给控制器操作,该操作返回一个JsonAction,如下所示: // GET: Locations/Get [HttpGet] public async Task<JsonResult> Get(string lotNumber) { var result = await this.MakeApiCall("/locations?lotNumber=" + lotNumber); return Json(result, JsonReques

我有一个方法将字符串[]返回给控制器操作,该操作返回一个JsonAction,如下所示:

// GET: Locations/Get
[HttpGet]
public async Task<JsonResult> Get(string lotNumber)
{
    var result = await this.MakeApiCall("/locations?lotNumber=" + lotNumber);

    return Json(result, JsonRequestBehavior.AllowGet);
}
我看到一个类似于以下内容的字符串:

[“BA01A1”、“BA01A2”、“BA01A3”]

但是,这似乎是一个字符串,因为如果我这样做:

core.get(locationsApi + "?lotNumber=" + core.getParameterByName("lotNumber"), function (response) {
    var r = JSON.parse(response);

    console.log(r);
});
core.get(locationsApi + "?lotNumber=" + core.getParameterByName("lotNumber"), function (response) {
    var r = JSON.parse(response);
    var r = JSON.parse(r);

    console.log(r);
});
它实际上返回一个数组。。。。
如何让我的操作在开始时返回数组,或者至少返回只需分析一次的内容?

听起来像是从
MakeApiCall
返回的
var result=
类型是
string
但包含
[“BA01A1”、“BA01A2”、“BA01A3”]
基本上是序列化的JSON

您可以通过将鼠标悬停在
var
上并查看类型,以及使用调试器查看API调用返回的实际值来确定这一点

然后使用
JSON(结果,JsonRequestBehavior.AllowGet)返回序列化的JSON时字符串正在被序列化为另一个JSON表示形式

本质上,它是双重序列化的

使用此选项时,客户端将返回result.length==3,即数组的预期长度

    public ActionResult GetAnswer(string question)
    {               
        var answer = @"[""BA01A1"",""BA01A2"",""BA01A3""]";
        return Content(answer, "text/javascript");
    }
    // javascript result.length returns 3
当您使用Json帮助程序时,会得到一个包含28个字符的字符串,因为Json帮助程序假定您正在传递一个应该序列化的对象,但问题是,您已经有了一个表示为序列化字符串的数组:

    public ActionResult GetAnswer(string question)
    {                   
        var answer = @"[""BA01A1"",""BA01A2"",""BA01A3""]";
        return Json(answer);            
    }
    // javascript result.length returns 28
这把小提琴证明了这一点

TLDR在您的例子中,
var result
可能已经是JSON序列化对象的字符串表示形式,并将其传递给
JSON(
helper),然后再次序列化它。因此客户端必须反序列化两次


您有两种选择,或者将API调用中的字符串反序列化为C#对象列表,然后将该对象列表传递给
返回Json(someObject…
,或者将其作为Json类型的内容返回(如上所示)。

什么是
core
?该库存在问题。
结果是什么return?是json字符串吗?如果是,则是双重序列化