2014-03-30 144 views
0

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

“的气氛\ T7 \ nGravity \吨\ nMagnetism \吨\ nSeismic活动\吨\ nSurface \吨\ nTemperature \吨\ nWeather \吨\ nElement 1 \吨\ nElement 2 \吨\ nElement 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”作为Json的输入或“\ t”作为空格。

+0

你是什么意思,它不工作,完全是?你有错误的结果吗?你的预期结果是什么? –

+0

你的字符串是否有一个字面的'\ n'换行符,或者一个'\'字符后跟一个'n'字符?如果是后者,你试过'\\ n'而不是'\ n'吗? – OnlineCop

+0

嗨,@ Selman22 ...我的意思是它没有真正分裂它。因为当我打印lines.Length,它仍然是1,也是线[0]只是完整的字符串... – Lisa

回答

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); 
0

您可以使用多个分隔符:

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

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

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