拆分Json String

时间:2014-03-30 23:51:24

标签: c# json string unity3d

如何在Unity中拆分json字符串?我有一个名为entry_text的字符串,它由一个函数传递。当我打印出来。它是

  

" Atmosphere \ t7 \ nGravity \ t \ n磁力\ t \ n地震活动\ t \ n表面\ t \ n温度\ t \ n天气\ t \ n元素1 \ t \ n元素2 \ t \ n元素3 \ t \ N7",

包含"\t""\n"。所以我想将字符串拆分为"\t""\n"

我用过

 string[] lines = entry_text.Split(new string[] {"\n"}, StringSplitOptions.None);

我也试过

string[] lines = Regex.Split(entry_text, "\n");

这也不起作用:

string[] lines = entry_text.Split(new Char[] {'\n'}, StringSplitOptions.None);

似乎拆分功能不需要" \ n"作为Enter或" \ t"作为Json的空间。

2 个答案:

答案 0 :(得分:1)

如果你把它作为你的字符串:

string entry_text = "Atmosphere\t7\nGravity\t\nMagnetism\t\nSeismic Activity\t\nSurface\t\nTemperature\t\nWeather\t\nElement 1\t\nElement 2\t\nElement 3\t\n7";

请注意,字符串中的\t\n是两个独立的字符:\后跟tn

定义时:

string[] lines = entry_text.Split(new string[] {"\n"}, StringSplitOptions.None);

您的{"\n"}正在翻译成换行符,而不是两个单独的字符。为此,您需要转义\中的\n字符:

string[] lines = entry_text.Split(new string[] {"\\n"}, StringSplitOptions.None);

另一种写法是使用@符号,这意味着“在这个字符串中取字符,而不是转义它们”:

string[] lines = entry_text.Split(new string[] {@"\n"}, StringSplitOptions.None);

答案 1 :(得分:0)

您可以使用多个分隔符:

string[] lines = entry_text.Split('\t', '\n');

如果你想通过换行符加Split,你也可以试试这个:

string[] lines = entry_text.Split(new[] { Environment.NewLine }, StringSplitOptions.None);