将c#字符串序列化为JSON数组

时间:2013-09-22 19:46:16

标签: asp.net json asp.net-mvc-4

我在_Layout.cshtml文件中有以下代码。我的想法是在我的javascript代码中填写了一些关于安全性的项目.LoggedIn和用户名显然没问题,但是角色放在javascript中的方式是错误的。角色只是一个字符串[](应该成为一个JSON数组。

但它显示为'[& QUOT;使用者&安培; QUOT;,&安培; QUOT;'管理员&安培; “;”'显然不是有效的JSON数组。我有什么想法可以将我的字符串数组转换为有效的JSON数组?我在下面添加了RolesArray的代码。

<script type="text/javascript">
    $(function () {
        require(['jquery','config', 'security'],
                function ($, config, security) {

                security.items.loggedIn = '@Request.IsAuthenticated';
                security.items.Username = '@User.Identity.Name';

                var one = '@((MyIdentity)User.Identity).RolesArray'
                $(document).trigger("security_changed");
           });
    });
</script>


public String[] RolesArray   
{
    get
    {
        var two = Roles.ToArray();
        return two;        
    }
}

2 个答案:

答案 0 :(得分:8)

使用JSON.Net 请参阅以下代码

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };

string json = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "Expiry": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);

答案 1 :(得分:0)

如果剃刀为此制作本机方法,那就太好了。

与此同时,这是一个简单的(没有库)for循环来实现它:

 @{
    <script>var array = []; </script> //create an empty js array

      for(int i = 0; i < Model.Count; i++)
      {
        <script> array[@i] = '@Model[i]'; </script> //pass each string to array
      }
 }