【问题标题】:Parse return value from $ajax call in JavaScript from MVC Controller从 MVC 控制器的 JavaScript 中解析 $ajax 调用的返回值
【发布时间】:2022-01-29 12:58:19
【问题描述】:

我正在使用带有 C# 的 VS2022,并且我正在尝试在我的 JavaScript 函数中使用 $ajax get 方法。我正在发送一个参数并返回一个 string[] 列表,但是当我收到返回时,我使用 JSON.stringify 但是当我尝试使用 JSON.Parse 时它失败了。 Javascript代码是

$.ajax({
    type: "GET",
    url: '/Home/GetCategories/',
    contentType: 'application/json', 
    datatype: 'json',
    data: { ctgData: JSON.stringify(relvalue)}
}).done(function(result) {
    let userObj = JSON.stringify(result); 
    let resultList = JSON.parse(userObj);
});

控制器中返回列表的代码目前很简单,直到我得到返回工作

[HttpGet]
public ActionResult GetCategories(string ctgData)
{
    string[] categoryList = { "Food & Drink", "Sport & Fitness", "Education", "Housework", "Fiction", "Horror Books", "Fantasy", "Magic" };
    return Json(new { data = categoryList });
}

结果中的值为

{"data":["Food & Drink","Sport & Fitness","Education","Housework","Fiction","Horror Books","Fantasy","Magic"]}

我在 Parse 中尝试了多种不同的方法,但总是失败,你能告诉我我缺少什么来让我的 resultList 包含字符串数组。

【问题讨论】:

  • 有什么问题?你是从控制器获取数据还是什么?

标签: javascript json ajax http-get


【解决方案1】:

您不需要解析任何内容。已经是java脚本对象了

$.ajax({
    type: "GET",
    url: '/Home/GetCategories/',
    contentType: 'application/json', 
    datatype: 'json',
    data: { ctgData: JSON.stringify(relvalue)}
     sucess:  function(result) {
      let data=result.data; // data = ["Food & Drink","Sport & Fitness",..]
   }
});

【讨论】:

  • 成功了,非常感谢
【解决方案2】:

使用这个:

JSON.parse(JSON.stringify(data))

const data = {"data":["Food & Drink","Sport & Fitness","Education","Housework","Fiction","Horror Books","Fantasy","Magic"]}

const resultJSON = JSON.parse(JSON.stringify(data))

console.log("json >>>", resultJSON)

【讨论】:

  • 感谢您的回复,当我尝试 JSON.parse(JSON.stringify(data)) 时失败了,然后我尝试返回 Object 的 JSON.parse(JSON.stringify(result))。我可能在正确的路线上,所以非常感谢您的帮助
  • 在stringify之后解析返回stringify之前的数据。
猜你喜欢
  • 1970-01-01
  • 2013-06-22
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多