如何从JSON.stringify中正确提取数据

时间:2018-07-02 15:28:24

标签: javascript jquery json ajax asp.net-mvc

我正在学习AJAX,在MVC示例中使用它时,在获取结果方面有些困难。

我的代码包含以下部分:

1- MVC控制器:有一种方法只返回一个值:

    [HttpPost]
    public JsonResult DemoAjaxMvc()
    {
        return Json(new { returnedData = "Hello" }, JsonRequestBehavior.AllowGet);                
    }

2- JavaScript部分:

function testAjax(){
  $.ajax({
          type: "POST",
          url: "DemoAjaxMvc",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (data) {
              //
              alert(JSON.stringify(data));

              alert(data.length);

              alert(data[0].returnedData);
          },
          error: function (exception) {                
              console.log(exception);
          }
      });
}

3-视图部分:

<button type="button" onclick="testAjax()">Show Returned Data</button>

我无法理解的是,代码实际上能够从alert(JSON.stringify(data));读取数据,但是alert(data.length);总是返回undefined,而alert(data[0].returnedData);返回错误< / p>

如何从returnedData中成功提取JSON.stringify(data)

我发现一些问题的标题与我的问题几乎相同,但是我无法理解它们,因为它们看起来有所不同,而且我还不熟悉如何正确阅读代码

1 个答案:

答案 0 :(得分:2)

您不需要字符串化。 dataType: 'json'告诉jQuery响应应该是JSON,它将自动为您解析为一个对象。此时您需要做的就是像访问任何普通对象一样访问它。

console.log(data.returnedData); //this according to your code should be "Hello"