0
我做一些東西與rapidjson,我想將值添加到我就是這樣如何使用rapidjson更新數組?
#include <iostream>
#include "rapidjson/document.h"
using namespace std ;
int main() {
char json[1024];
rapidjson::Document document ;
document.Parse<0>(json);
if (!document.IsObject()) {
document.SetObject();
}
assert(document.IsObject());
rapidjson::Document::AllocatorType& allocator = document.GetAllocator();
// adding member (int)
document.AddMember("mohammed",25,allocator);
assert(document.HasMember("mohammed"));
cout << document["mohammed"].GetInt() << endl ;
// adding member (array)
rapidjson::Value array(rapidjson::kArrayType);
array.PushBack(5,allocator);
array.PushBack(6,allocator);
cout << array[0u].GetInt() << endl ;
cout << array[1].GetInt() << endl ;
document.AddMember("array",array,allocator);
assert(document.HasMember("array"));
assert(document["array"].IsArray());
// here the following line give me an error
array.PushBack(7,allocator);
}
創建一個數組的錯誤是
json: rapidjson/document.h:397: rapidjson::GenericValue<Encoding, Allocator>& rapidjson::GenericValue<Encoding, Allocator>::PushBack(rapidjson::GenericValue<Encoding, Allocator>&, Allocator&) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]: Assertion `IsArray()' failed.
中止(核心轉儲)
是什麼問題可以解釋嗎?發生了什麼我有點新,謝謝。
好東西讓我的問題從寫這個圖書館的人回答,謝謝,順便說一句,這個圖書館給我很難,我需要在一個項目中使用它,我有點不知所措。 – mohammed
該PushBack導致rapidjson :: Value不再有效,因此很容易忘記,並且當您在當前文檔之外創建rapidjson :: Value時,請記住使用分配器! –