无法确定System.Char类型的JSON对象类型

时间:2013-08-12 13:53:38

标签: c# .net linq

我正在尝试实现一个随机的1个字符的字母数字JArray。

我遇到了这个:

How can I generate random alphanumeric strings in C#?

但是,我需要一个JArray,所以我尝试了这个:

        var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        var random = new Random();
        var result = new JArray(
                    Enumerable.Repeat(chars, 1)
                                .Select(s => s[random.Next(s.Length)])
                                .ToArray());

我每次都会收到Could not determine JSON object type for type System.Char错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

JSON没有字符的原语 - 只有字符串,数字和数组。只需添加.ToString()即可将您的角色转换为字符串,该字符串可以转换为JSON字符串:

    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var random = new Random();
    var result = new JArray(
                Enumerable.Repeat(chars, 1)
                            .Select(s => s[random.Next(s.Length)].ToString())
                            .ToArray());

答案 1 :(得分:2)

如果您按顺序获得多个random,可能需要更改代码以生成更好的random,但这可用于创建JArray

    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var random = new Random ( );
    var result = JArray.FromObject (
                Enumerable.Repeat ( chars , 1 )
                            .Select ( s => s [ random.Next ( s.Length ) ] )
                            .ToArray ( ) );