Как позволить JsonTextReader игнорировать текущую запись и переходить к следующей? - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь использовать powershell для вызова пространства имен Newtonsoft.Json для работы с файлами Json большого размера.Каждый файл содержит миллионы записей JSON, и не все они имеют правильный формат.Я использую Newtonsoft.Json.JsonTextReader, так как он читает одну запись json каждый раз, кроме чтения всего файла в память.Но когда он читает в запись, которая содержит некоторые проблемы с форматированием, он потерпит неудачу, и я понятия не имею, как проигнорировать текущую.Есть ли способ позволить ей игнорировать текущую запись и продолжить следующую?файл, как вы можете видеть, существует проблема формата для свойства "P2" 3-й записи.

{
    "Record":
        [
            {
                "P1":"data",
                "P2":"data",
                "P3":"data"
            }
            ,
            {
                "P1":"data2",
                "P2":"data2",
                "P3":"data2"
            }
            ,
            {
                "P1":"data3",
                "P2":"data3"",
                "P3":"data3"
            }
            ,
            {
                "P1":"data4",
                "P2":"data4",
                "P3":"data4"
            }
        ]

}

1 Ответ

0 голосов
/ 24 декабря 2018

А как насчет оператора Try Catch?

     try {
 $single=$analyzer.Deserialize($reader)

        # Deal with the json record...
        $i++ }

 catch {
LogWrite ("Caught the exception")
LogWrite ($Error[0].Exception)
$i++
  }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...