При разборе сложного вложенного файла JSON трудно получить доступ / значение поиска объекта

#c #json

#c #json

Вопрос:

Вот файл json, над которым я работаю —

 {
    "statuses": [{
        "metadata": {
            "result_type": "recent",
            "iso_language_code": "ja"
        },
        "created_at": "Sun Aug 31 00:29:15  0000 2014",
        "id": 505874924095815700,
        "id_str": "505874924095815681",
        "text": "@aym0566x nn名前:前田あゆみn第一印象:なんか怖っ!n今の印象:とりあえずキモい。噛み合わないn好きなところ:ぶすでキモいとこyumsparklessparklesn思い出:んーーー、ありすぎblushheartnLINE交換できる?:あぁ……ごめんhandnトプ画をみて:照れますがなkissing_heartsparklesn一言:お前は一生もんのダチsparkling_heart",
        "source": "<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone",
        "truncated": false,
        "in_reply_to_status_id": null,
        "in_reply_to_status_id_str": null,
        "in_reply_to_user_id": 866260188,
        "in_reply_to_user_id_str": "866260188",
        "in_reply_to_screen_name": "aym0566x",
        "user": {
            "id": 1186275104,
            "id_str": "1186275104",
            "name": "AYUMI",
            "screen_name": "ayuu0123",
            "location": "",
            "description": "元野球部マネージャー❤︎…最高の夏をありがとう…❤︎",
            "url": null,
            "entities": {
                "description": {
                    "urls": []
                }
            }
        }
    }]
}
 

Используя пример кода simdjson, я смог проанализировать весь файл json, но при поиске объекта и его значения я не смог выполнить поиск, он просто не показывает такого объекта / значения объекта.
Пожалуйста, помогите мне с кодом, как и что делать.

Вот код

 #include "simdjson.h"
int main(void) {
  simdjson::dom::parser parser;
  simdjson::dom::element tweets = parser.load("twitter.json");
  std::cout << "Value of ID " << tweets["statuses"]["id"] << std::endl;
}
 

Вот результат, который я получаю

 ~/simdjson-master$ c   strt.cpp simdjson.cpp
~/simdjson-master$ ./a.out 
terminate called after throwing an instance of 'simdjson::simdjson_error'
  what():  The JSON element does not have the requested type.
Aborted (core dumped)

 

Это результат, который я ожидаю

 ~/simdjson-master$ c   strt.cpp simdjson.cpp
~/simdjson-master$ ./a.out 
Value of ID 505874924095815700

 

Комментарии:

1. statuses является массивом. tweets["statuses"][0]["id"]

2. @Cid Я пробовал это, но это показывает Segmentation fault (core dumped)

3. Затем вам следует использовать отладчик, чтобы выяснить, что не так.

4. Я бы посоветовал обратиться непосредственно к сопровождающим проекта, поскольку это похоже на копирование / вставку их примера…

5. Нашел свою ошибку, это было std::cout << tweets["statuses"].at(0)["id"] << std::endl;