从json读取值

时间:2015-01-11 09:58:19

标签: javascript json asp.net-mvc-4

我正在使用MVC4

我使用Ajax返回JSon值

function GetTopConnector(logoId) {

    //Get all products for Memory

    $.ajax({
        type: "POST",
        url:"Product/GetJsonTopConnectors",
        contentType: "application/json;",
        dataType: "json",
        success: function(data) { OnSuccess(data); },
        failure: OnFailure,
        error: OnError
    });

};


function OnSuccess(response) {

    var obj = JSON.parse(response); // fails, as does JQuery.parse

    var company = response[0].company;
    var partNumber = response.partNumber;
    var thumbnail = response["thumbnail"];

    alert(company + " --- " + partNumber + " --- " + thumbnail + " --- ");
}

我的控制器是

    public JsonResult GetJsonTopClickConnectors()
    {
        var connector = bll.Connectors.GetTopConnector();

        var result = "{'partNumber':'" + connector.PartNumber + "','company':'" + connector.CompanyName + "','thumbnail':'" + connector.Thumbnail + "'}";

        return Json(result);
    }

上述'工作'在某种意义上,调用OnSuccess js函数,并且响应变量具有值。

根据我读过的内容,此值已经是Json格式化的值。如果我理解正确,JSon没有特殊的属性,它只是给定格式的字符串。正如您在我的OnSuccess函数中看到的,我想将它视为一个对象。

谷歌搜索建议我将其解析为一个对象,例如JSON.parse(),但这会引发一次预测,我的结果永远不会被填充。

目标是能够var company = response.company

我该怎么做?

1 个答案:

答案 0 :(得分:1)

var result = "{'partNumber':'" + connector.PartNumber + "','company':'" + connector.CompanyName + "','thumbnail':'" + connector.Thumbnail + "'}";

无法生成有效的JSON('不是JSON中的字符串分隔符)。使用linter测试输出,并为C# library找到generating JSON,而不是将字符串压缩在一起。