NewtonSoft Json ошибка парсера: символы маркера в строке JSON - PullRequest
0 голосов
/ 09 июля 2020

У меня есть файл JSON, в котором есть текст с маркерами «•». Когда я пытаюсь разобрать его с помощью Newtonsoft Json, он выдает ошибку: «После анализа значения был обнаружен неожиданный символ». Как нам заменить все маркеры в строке, пожалуйста?

string strFileContent = System.IO.File.ReadAllText(JsonFilePath).Replace("\0", string.Empty); 
JObject reportLayout = JObject.Parse(strFileContent);

Это JSON часть файла, которая вызывает проблему. Я попробовал заменить строку «• \ t», но она тоже не работает.

"paragraphs":[
    {"textRuns":[
        {
            "value":"•\tItem1"}]            
    }
    ,{"textRuns":[
        {
            "value":"•\tItem2"}]            
     }
    ,{"textRuns":[
        {
            "value":"•\tItem3"}]        
    }
]

1 Ответ

1 голос
/ 09 июля 2020

Чтобы удалить маркеры из вашего файла, вам необходимо заменить маркеры с помощью Regex. Замените входным шаблоном с юникодами для маркеров, как показано ниже

string strFileContent = System.IO.File.ReadAllText(JsonFilePath);
string finalString = Regex.Replace(strFileContent, "[\\u2022,\\u2023,\\u25E6,\\u2043,\\u2219]\\s\\d", " ");

Затем вы можете использовать finalString при синтаксическом анализе вашего JSON

Обратите внимание, что в приведенных выше шаблонах u2022 предназначен для (.) Пули.

Это должно соответствовать следующим стилям маркеров:

  1. Bullet (• )
  2. Tri angular Bullet (‣)
  3. White Bullet (◦)
  4. Дефис маркера (⁃)
  5. Bullet Operator (∙)

Помогло это ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...