Является ли процесс C # повторным экранированием символов в строке, прочитанной из вывода скрипта R? - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь прочитать вывод Json из R-скрипта, мой R-файл (RScript.R) выглядит так:

cat("[{\"code\":0,\"message\":\"FILE1.xls has been successfully checked.\"}]")

Я создал в C # метод, который запускает скрипт R, который выглядит следующим образом:

    public static string RunRScript(string scriptpath)
    {
        string result, errResult;
        try
        {
            var info = new ProcessStartInfo
            {
                FileName = RExeFolder,
                WorkingDirectory = Path.GetDirectoryName(RExeFolder),
                Arguments = scriptpath,
                RedirectStandardOutput = true,
                CreateNoWindow = false,
                UseShellExecute = false
            };

            using (var proc = new Process { StartInfo = info })
            {
                proc.Start();
                result = proc.StandardOutput.ReadToEnd();
                errResult = proc.StandardError.ReadToEnd();
                return result;
            }
        }
        catch (Exception ex)
        {
            //Do something with error
        }
        return string.Empty;
    }

Вывод выглядит нормально, когда я запускаю его в cmd, то есть без "\": enter image description here

Но проблема возникает, когда я хочу прочитать вывод из C #, у меня есть веб-интерфейс API, который вызывает метод RunRScript и возвращает строку, и вывод выглядит так:

enter image description here

Я пытался проверить в момент чтения вывода из скрипта, и он выглядит так же, как в API, с двойными кавычками:

enter image description here

Вопросы:

  • Есть ли что-то, что я делаю не так?
  • Является ли C # повторным выходом из двойного цитаты?
...