簡體   English   中英

無法訪問JSON對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM