2016-02-11 3 views
0

Я пытаюсь использовать 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 в точке, где заканчивается один список, а другой начинается. Это не список списков, и он также не является частью пары «ключ-значение».

Возможно, мне придется немного углубиться в Гссона, но мне хотелось бы нажать в правильном направлении. Большое спасибо за помощь.

ответ

1

ОК это недействительный json. Коллега отметил, этот вопрос мне:

GitHub: multiple files produce invalid json output #379

+0

Угу. Как хакерское обходное решение вы можете обернуть файл в '[]', а затем вставить запятую между любыми скобками (chage ') [' to '], ['. Это даст вам действительный JSON до тех пор, пока ошибка не будет исправлена. – JKillian

+0

I просто заменил] [запятой и сделал его одним большим массивом. Это сработало – mister270

+0

Хороший звонок, это более простое и лучшее решение – JKillian

Смежные вопросы