0

I am try to read list from json here id my code:-

List<EmailProvider> list = new List<EmailProvider>();
        XmlDocument doc = new XmlDocument();
        doc.Load(Server.MapPath("~/WidgetXml.xml"));
        XmlElement root = doc.DocumentElement;
        XmlNodeList nodes = root.SelectNodes("//widget");

        foreach (XmlNode node in nodes)
        {
            EmailProvider obj = new EmailProvider();
            obj.Name = node["Name"].InnerText;
            obj.left = Convert.ToInt32(node["left"].InnerText);
            obj.Id = node["id"].InnerText;
            obj.IsVisible = Convert.ToBoolean(node["isActive"].InnerText);
            long s = Int64.Parse(node["top"].InnerText);
            obj.top = s;
            obj.desc = node["desc"].InnerText;
            list.Add(obj);
        }
        var result = list.OrderBy(p => p.IsVisible).ToList();
        return result.ToArray();

and on view:-

 $(document).ready(function () {
        $.post(siteUrl.getSiteUrl + '/Admin/ReadXml/', function (data) {
            alert(data.length);
            var st = JSON.stringify(data);
            alert(st.length);
        });
    });    

length always show 54 but in array only 4 items. How can i read all recors from array by json from json object.

Thanks in advance.

4

1 に答える 1

0

コントローラーメソッドJsonを使用して、コントローラーメソッドから JsonResult を返してみてください

var result = list.OrderBy(p => p.IsVisible).ToList();
return Json(result.ToArray());

JavaScript では、次のように配列を繰り返し処理する必要があります。

$(document).ready(function () {
    $.post(siteUrl.getSiteUrl + '/Admin/ReadXml/', function (data) {
        for(var i = 0;i < data.length; i++){
            alert(data[i].Name);
        }
    });
});
于 2012-12-06T17:47:35.127 に答える