我是C#编程的新手,我有一个测验应用程序,在其中使用服务调用显示登录用户的问题和答案。
有一些问答选项,我可以得到有时包含“ \ n”的服务响应(请注意,这是不是换行符)。
所以在显示问题或答案之前,我写了一种替换方法
\ n
使用
“”
static string SanitizeJSON(JSONObject input)
{
return input.ToString()
.Replace(@"\", "")
.Replace("\"", "")
.Replace("\r", "")
.Replace("\n", "");
}
当我从服务响应中检索答案时,会用到它:
for (int i = 0; i < answers.Count; i++)
{
q.answers.Add(SanitizeJSON(answers.list[i].GetField("text")));
//System.Console.Write("ANSWERSSS",SanitizeJSON(answers.list[i].GetField("text")));
if (answers.list[i].GetField("correct").ToString() == "true") q.correctIndex = i;
}
尽管如此,我仍然在用户界面中得到\ n:
{text:答案为\ n}。
如果我做错了事,请告诉我吗?
答案 0 :(得分:0)
您可以使用Regex.Replace
方法清理json。
您可以将json中的\n
或\t
或\r
替换为空字符串(""
)。
在这里,我创建了用于演示目的的控制台应用程序。
class Program
{
static void Main(string[] args)
{
string json = @"{'Question': 'How \n can we serve \t you better? \n\n\t\t\n\t',
'Answer': 'You should \n provide your \r best \n\n\r\r\t\n' }";
JObject jObject = JObject.Parse(json);
var sanitizedJson = SanitizeJSON(jObject);
JObject result = JObject.Parse(sanitizedJson);
Console.WriteLine(result);
Console.ReadLine();
}
static string SanitizeJSON(JObject input)
{
string replacement = Regex.Replace(input.ToString(), @"\\t|\\n|\\r", string.Empty);
return replacement.ToString();
}
}
输出: