2015-01-06 3 views
0

Что делать, если у меня есть такой json? Я использую rapidjsonRapidJson синтаксический анализатор json

{[ 
    { 
     "username": "A", 
     "level": "1", 
     "score": "1774" 
    }, 
    { 
     "username": "Ab", 
     "level": "1", 
     "score": "1923" 
    }, 
    { 
     "username": "M", 
     "level": "1", 
     "score": "1991" 
    }, 
    { 
     "username": "P", 
     "level": "1", 
     "score": "2030" 
    }, 
    { 
     "username": "Am", 
     "level": "1", 
     "score": "2044" 
    } 
]} 

Это наверняка не получило подтверждения.

rapidjson::Document doc; 
doc.Parse<0>(message.c_str()); 
assert(doc.IsObject()); 

и как извлечь массив, если он даже не имеет ключа?

ответ

1

Это недействительный JSON. Для объекта JSON, то есть { ... }, он должен содержать пары ключ-значение. Два решения:

  1. Вы можете просто удалить затраченные наиболее { }, чтобы сделать его действительным JSON. Тогда корень будет массивом JSON и doc.IsArray() == true.

  2. Добавить ключ перед массивом, например. { "a" : [ ... ] }. Затем вы можете получить доступ к массиву doc["a"].

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