Я пытаюсь использовать gson для синтаксического анализа вывода tslint (и предположительно eslint аналогичен).Разбор tslint json с gson в Java
tslint json output - это последовательность массивов, по одному для каждого файла, а не массив массивов, что было бы легко. Вот фрагмент одного запуска:
[{
"endPosition": {
"character": 8,
"line": 122,
"position": 4277
},
"failure": "file should end with a newline",
...
{
"endPosition": {
"character": 118,
"line": 120,
"position": 4250
},
"failure": "expected parameter: '$templateRequest' to have a typedef",
"name": "src/client/ts/app.ts",
"ruleName": "typedef",
"startPosition": {
"character": 117,
"line": 120,
"position": 4249
}
}][{
"endPosition": {
"character": 1,
"line": 2,
"position": 10
},
"failure": "space indentation expected",
"name": "src/client/ts/controller/AboutCtrl.ts",
"ruleName": "indent",
"startPosition": {
"character": 0,
"line": 2,
"position": 9
}
}, ...
Проблема состоит в том, чтобы представить это в классе Java, где я использую метод fromJson GsonBuilder для анализа результатов. Использование класса, реализующего List, вызывает исключение JsonSyntaxException в точке, где заканчивается один список, а другой начинается. Это не список списков, и он также не является частью пары «ключ-значение».
Возможно, мне придется немного углубиться в Гссона, но мне хотелось бы нажать в правильном направлении. Большое спасибо за помощь.
Угу. Как хакерское обходное решение вы можете обернуть файл в '[]', а затем вставить запятую между любыми скобками (chage ') [' to '], ['. Это даст вам действительный JSON до тех пор, пока ошибка не будет исправлена. – JKillian
I просто заменил] [запятой и сделал его одним большим массивом. Это сработало – mister270
Хороший звонок, это более простое и лучшее решение – JKillian