在c#中将对象集合转换为javascript数组的创造性方法

时间:2009-06-19 02:44:43

标签: c# javascript asp.net-mvc arrays json

我有一个用户列表List<Users>,我需要创建一个包含所有UserID的javascript数组。

我知道我可以使用stringbuilder手动构建它并循环,然后将其保存到变量并在我的asp.net-mvc视图页面上显示。

还有其他更有创意的方法吗?

3 个答案:

答案 0 :(得分:5)

来自Json.NET的JsonConvert.SerializeObject。

以下简化示例:

using System;
using System.Linq;
using System.Collections.Generic;

using Newtonsoft.Json;

class Users
{
    public string Name {get; set;}
    public int UserID {get; set;}
    public Users(string Name, int UserID)
    {
        this.Name = Name;
        this.UserID = UserID;
    }
}

    List<Users> users = new List<Users>();
    users.Add(new Users("John", 1));
    users.Add(new Users("Mary", 2));
    ...     

    string json = JsonConvert.SerializeObject(from user in users select user.UserID);
}

答案 1 :(得分:1)

你可以使用Json(list)转换为JSON,然后在你的javascript

中解析它

答案 2 :(得分:1)

你也可以这样做

var jsArray = String.Format("var userIds=new Array({0});", String.Join(",", users.Select(x =>x.UserId.ToString()).ToArray()))