gpt4 book ai didi

javascript - 无法访问 JSON 对象

转载 作者:行者123 更新时间:2023-11-28 02:06:44 27 4
gpt4 key购买 nike

我正在使用 asp mvc 并向我的 View 返回一个 json 对象,但我似乎无法访问 json 中的任何属性。这是我的代码。

在我的模型中,我有:

public string getJson()
{
File a = new File();
a.Name = "matt";
a.Path = "c:/adsgadsg/sdagdsag";
string json = new JavaScriptSerializer().Serialize(a);
//json = "{\"Name\":\"matt\",\"Path\":\"c:/adsgadsg/sdagdsag\"}"
return json;
}

然后在我的 javascript 中我有:

function test() {
var userRegion = '@Model.getJson()';
var tmp = userRegion.Name;
var tmp2 = userRegion[0].Name;
alert(tmp);//undefined
alert(tmp2);//undefined
}

我做错了什么?谢谢。

编辑:当我调试 javascript 时,我注意到 '@Model.getJson()';被转换为一个奇怪的字符串,不能被 JSON.parse 解析而没有异常。

 var userRegion = JSON.parse('{"Name":"matt","Path":"c:/adsgadsg/sdagdsag"}');

导致异常Uncaught SyntaxError: Unexpected token &

最佳答案

您应该首先将 JSON 字符串解析为 Javascript 对象。这可以安全地完成,例如使用 Json2图书馆。

更新:此外,您应该使用 Html.Raw函数打印出 JSON 字符串,因为其他方式它将被 HTML 编码(引号将变成 " 等)。

您的代码应如下所示:

function test() {
var userRegion = JSON.parse('@Html.Raw(Model.getJson())');
var tmp = userRegion.Name;
//var tmp2 = userRegion[0].Name; this one is not correct
alert(tmp);//undefined
//alert(tmp2);//undefined
}

关于javascript - 无法访问 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660670/

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