2013-04-25 6 views
2

У меня есть следующие JSON строка:Синтаксический Json в Groovy

[ { id: '123', name: 'bla bla', type: 'Source', isLeaf: true }, 
    { id: '3425', name: 'test test', type: 'Reference', isLeaf: false }, 
    { id: '12678', name: 'tags', type: 'Source', isLeaf: false }, 
] 

Я пытаюсь разобрать это с помощью JsonSlurper, но получаю сообщение об ошибке:

groovy.json.JsonException: Lexing failed on line: 1, column: 5, while reading 'i', no possible valid JSON value or punctuation could be recognized. 

Как разобрать его и получить доступ к id:'3425'?

ответ

4

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

[ { "id": "123", "name": "bla bla", "type": "Source", "isLeaf": true }, 
    { "id": "3425", "name": "test test", "type": "Reference", "isLeaf": false }, 
    { "id": "12678", "name": "tags", "type": "Source", "isLeaf": false }, 
] 

Вы можете сделать:

def ids = new groovy.json.JsonSlurper().parseText(json).id 
assert ids[ 1 ] == '3425' 
+0

Сначала я так и думал, но http://jsonviewer.stack.hu/ сообщает, что Json является действительным. В любом случае, спасибо за ответ. –

+0

Я подозреваю, что jsonviewer.stack.hu неверен. http://jsonlint.com/ http://en.wikipedia.org/wiki/JSON#Data_types.2C_syntax_and_example –

+1

@asp_NewBee: если приложение jsonviewer говорит, что оно действительно, это неправильно. спецификация (http://json.org/) довольно ясна. –