[英]Can't access JSON object
我正在使用asp mvc並向我的視圖返回一個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:意外的令牌&
您應該首先將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
}
我很確定alert(userRegion );
返回undefined
。
Json無法序列化方法,您必須在模型類的屬性中移動此代碼。
我在MVC3中使用以下內容:var events = JsonConvert.DeserializeObject>(yourObject); 它將JSON字符串放在正確的字段中,然后使用foreach循環從事件中讀取數據,希望這將引導您朝正確的方向發展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.