替换问题

时间:2018-10-22 12:27:33

标签: c#

我是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}。

如果我做错了事,请告诉我吗?

1 个答案:

答案 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();
    }
}

输出:

enter image description here