C# 拆分Json字符串

C# 拆分Json字符串,c#,json,string,unity3d,C#,Json,String,Unity3d,如何在Unity中拆分json字符串?我有一个名为entry_text的字符串,由函数传递。当我打印出来的时候。是的 “大气\t7\n重力\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)

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

“大气\t7\n重力\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);

split函数似乎没有将“\n”作为Enter,或将“\t”作为Json的空格。

您可以使用多个分隔符:

string[] lines = entry_text.Split('\t', '\n');
如果要按新行字符拆分,也可以尝试以下操作:

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

如果您将此作为字符串:

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
是两个独立的字符:a
\
后跟a
t
n

定义时:

string[] lines = entry_text.Split(new string[] {"\n"}, StringSplitOptions.None);
您的
{“\n”}
正在转换为换行符,而不是两个单独的字符。为此,您需要对
\n
中的
\
字符进行转义:

string[] lines = entry_text.Split(new string[] {"\\n"}, StringSplitOptions.None);
另一种书写方法是使用
@
符号,意思是“获取此字符串中的文字字符,而不是转义它们”:


你说它不起作用是什么意思?你得到了错误的结果吗?预期的结果是什么?字符串中是否有一个文本
\n
换行符,或是一个
`字符后跟一个
n`字符?如果是后者,您是否尝试过
\\n
而不是
\n
?您好,@Selman22…我的意思是它没有真正拆分它。因为当我打印lines.Length时,它仍然是1,而且lines[0]只是完整的字符串…旁注:我在示例中没有看到任何JSON。。。你能澄清一下为什么在帖子中提到JSON吗?(我已经从你的帖子中删除了一些额外的文字-如果你觉得除了hi/Thank文字之外还有其他重要内容,请随时回复我的更改)哦,@OnlineCop,是的!它通过使用\\n。。。多谢各位
string[] lines = entry_text.Split(new string[] {@"\n"}, StringSplitOptions.None);