C# 如何将字符串划分为数组

C# 如何将字符串划分为数组,c#,json,C#,Json,如果我有以下普通字符串,我如何将其划分为三个元素的数组 {["a","English"],["b","US"],["c","Chinese"]} ["a","English"],["b","US"],["c","Chinese"] 这个问题与JSON字符串解析有关,因此我想知道是否有任何API来促进转换。删除大括号,然后使用string.Split,使用“,”作为分隔符 不幸的是,我从来没有做过JSON的东西,所以不知道解析库。你不能让WCF帮你做这件事吗?我用regex编写了一个小控制台示

如果我有以下普通字符串,我如何将其划分为三个元素的数组

{["a","English"],["b","US"],["c","Chinese"]}

["a","English"],["b","US"],["c","Chinese"]

这个问题与JSON字符串解析有关,因此我想知道是否有任何API来促进转换。

删除大括号,然后使用string.Split,使用“,”作为分隔符


不幸的是,我从来没有做过JSON的东西,所以不知道解析库。你不能让WCF帮你做这件事吗?

我用regex编写了一个小控制台示例,很可能有更好的方法

static void Main(string[] args)
    {
        string str = "{[\"a\",\"English\"],[\"b\",\"US\"],[\"c\",\"Chinese\"]}";
        foreach (System.Text.RegularExpressions.Match m in System.Text.RegularExpressions.Regex.Matches(str, @"((\[.*?\]))"))
        {
            Console.WriteLine(m.Captures[0]);
        }
    }

NET MVC可以轻松地将集合转换为JSON格式。还有
System.Web.Script.Serialization
中的。最后还有一个由James Newton编写的很好的第三方库,称为您可以使用。

使用DataContract序列化

使用String。Split不适用于单个令牌,因为每个令牌中的字符串也包含一个字符串(如果我理解了要求,数组元素应该是:

  • [“a”,“英文”]
  • [“b”、“美国”]
  • [“c”、“中文”]
  • 如果使用string.Split并使用逗号作为分隔符,则数组将由以下部分组成:

  • [“a”
  • “英文”]
  • [“b”
  • “美国”]
  • [“c”
  • “中文”]
  • 这里有一个我读过但从未使用过的JSON解析器:


    @rerun:我认为你的解决方案最适合我目前的情况。可以详细说明匹配模式吗?我不知道Regex。Thx.Regex是一个大话题,但基本上它是一种速记文本匹配和捕获的方式。我提供的匹配字符串匹配[]之间的所有字符然后将它们存储在捕获中。看看它有很多很棒的info.Thx。双括号是什么意思?如果字符串包含“[”或“]”字符,你需要一个更好的正则表达式。或者正如Jamie Zawinski在1997年的著名引用中所说的那样“有些人在遇到问题时会想‘我知道,我会使用正则表达式。’现在他们有两个问题。“DataContract序列化是一个更好的选择。有很多用于.net的JSON框架,很抱歉,我已经好几年没有使用JSON了,所以我不知道witch framework会在今天向您指出什么。不过,您不必自己处理JSON的字符串!