【发布时间】:2020-06-09 11:25:54
【问题描述】:
我有一个控制器方法,它将字典返回到 JQuery ajax 函数:
public JsonResult GenerateLicensePlateSeries(string letters, int number, int amount)
{
Dictionary<string, string> plates = new Dictionary<string, string>();
var table = luxWebSamContext.LicensePlates;
do
{
if (table.Where(x => x.LicensePlateNumber == (letters + number)).Count() == 0)
{
plates.Add(letters + (number), "");
}
else
{
plates.Add(letters + (number), table.Where(x => x.LicensePlateNumber == (letters + number)).Single().CommissionNumber);
}
number++;
}
while (plates.Count < amount);
return Json(plates);
}
该代码返回以下字符串:
{"AB2495":"","AB2496":"","AB2497":"","AB2498":"","AB2499":"","AB2500":"095753125"}
我的问题是我不知道如何在我的 post 方法的成功功能中访问这些数据。我想遍历响应并检查每个键/对值的第二个字段是否填充了一个数字(最后一个是):
$.post(baseUrl + '/de/SAM/GenerateLicensePlateSeries',
{
letters: $("#seriesLetters").val(),
number: $("#seriesNumbers").val(),
amount: $("#seriesAmount").val()
},
function (returnedData) {
var data = JSON.parse(returnedData);
alert(data);
});
我尝试将其解析为 JSON,但收到错误消息:
未捕获的 SyntaxError:位置 1 处 JSON 中的意外标记 o
任何想法如何访问数据?
【问题讨论】:
-
您是否尝试在没有 JSON.parse 的情况下打印数据?例如只是 console.log(returnedData); ?
-
请注意,
queryable.Where(lambda).Count() == 0在写成!queryable.Any(lambda)时几乎总是会执行得更快。 -
错误原因是你在
returnedData上运行JSON.parse,这不是JSON,而是一个已经从JSON解析出来的对象。
标签: javascript c# asp.net-core