【C++】問題解決:/usr/include/rapidjson/document.h:1681: const Ch* rapidjson::GenericValue<Encoding, Allocator>::GetString() const [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::GenericValue<Encoding, Allocator>::Ch = char]: Assertion `IsString()' failed.

問題描述

碰到以下開頭的內容,問題的解決方式

/usr/include/rapidjson/document.h:1681: const Ch* rapidjson::GenericValue<Encoding, Allocator>::GetString() const [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::GenericValue<Encoding, Allocator>::Ch = char]: Assertion `IsString()' failed.

問題來源

我原先想進行以下的操作

d.Parse(document["key6"].GetString());

出問題的段落在於 「GetString()」這個部分,
因為我嘗試去存取一個不存在 String 位置 (或是該值本身就不被定義為「String」),
所以才出現此 error。

解決方法

我們應該要去檢查 GetString() 所取得的結果是否真的為 String,
並進行更正即可以解決問題。

Reference