6

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

我遇到了这个:

如何在 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每次都会出错。

有任何想法吗?

4

2 回答 2

7

JSON 没有字符的原语——只有字符串、数字和数组。只需添加 a.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());
于 2013-08-12T14:04:12.933 回答
2

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

    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var random = new Random ( );
    var result = JArray.FromObject (
                Enumerable.Repeat ( chars , 1 )
                            .Select ( s => s [ random.Next ( s.Length ) ] )
                            .ToArray ( ) );
于 2013-08-12T14:01:25.980 回答