gpt4 book ai didi

C# 无法正确识别 JSON 数组

转载 作者:行者123 更新时间:2023-11-30 20:36:27 25 4
gpt4 key购买 nike

我正在努力解决有线 JSON 问题。我正在使用 ASP C# 并有一个 View 将 JS 数组发送到 Controller 操作。

这是 JSON 数据的结构。

public class MapData
{
public List<Point> Points { get; set; }
}

public class Point
{
public string lat { get; set; }
public string lng { get; set; }
}

这是我用来生成 JSON 数组的例程:出于测试目的,它不会生成有效的 MapData。

$("#pac-save").click(function () {
var mapPoints = {
Points: []
}

mapPoints.Points.push({
lat:"asdf1",
lng:"asdf1"
})
mapPoints.Points.push({
lat:"asdf2",
lng:"asdf2"
})
$.ajax({
url: "/Map/saveGeplanteRoute",
data:mapPoints
}).done(function (dd) {
alert("done");
}).fail(function () {
alert("error");
});
})

这是 Controller Action

public JsonResult saveGeplanteRoute(MapData data)
{
var test = new MapData
{
Points = new List<Point>()
};
test.Points.Add(new Point() { lat = "asdf1", lng = "asdf1" });
test.Points.Add(new Point() { lat = "asdf2", lng = "asdf2" });
return Json(test);
}

奇怪的是:当我在发送之前对数据进行字符串化时,它看起来像这样:

"{"Points":[{"lat":"asdf1","lng":"asdf1"},{"lat":"asdf2","lng":"asdf2"}]}"

当我对它进行字符串化时,从 Controller 返回的数据看起来完全一样:为什么 C# 不能解析 Point 数据?点数据量是正确的,如下所示:

JSON data

我会很高兴得到一些建议,指出我没有发现的错误

最佳答案

将 HTTP 方法从 GET 更改为 POST

$.ajax({
url: "/Map/saveGeplanteRoute",
type: "POST",
data: mapPoints
}).done(function (dd) {
alert("done");
}).fail(function () {
alert("error");
});

GET 方法使用对 JSON 不友好的 URL 字符串发送数据

关于C# 无法正确识别 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com