Tôi đang cố gắng tuần tự hóa bằng cách sử dụng cây thuộc tính boost write_json, nó tiết kiệm mọi thứ dưới dạng chuỗi, không phải dữ liệu sai, nhưng tôi cần phải sử dụng chúng một cách rõ ràng mọi lúc và tôi muốn sử dụng chúng ở một nơi khác. (Như trong python hoặc khác C++ json (không tăng) thư viện)Tại sao tăng property property write_json lưu mọi thứ dưới dạng chuỗi? Có thể thay đổi điều đó không?
đây là một số mẫu mã và những gì tôi nhận được tùy thuộc vào ngôn ngữ:
boost::property_tree::ptree root, arr, elem1, elem2;
elem1.put<int>("key0", 0);
elem1.put<bool>("key1", true);
elem2.put<float>("key2", 2.2f);
elem2.put<double>("key3", 3.3);
arr.push_back(std::make_pair("", elem1));
arr.push_back(std::make_pair("", elem2));
root.put_child("path1.path2", arr);
std::stringstream ss;
write_json(ss, root);
std::string my_string_to_send_somewhare_else = ss.str();
và my_string_to_send_somewhere_else
là sth. như thế này:
{
"path1" :
{
"path2" :
[
{
"key0" : "0",
"key1" : "true"
},
{
"key2" : "2.2",
"key3" : "3.3"
}
]
}
}
Liệu có cách nào để cứu họ như các giá trị, như: "key1" : true
hoặc "key2" : 2.2
?
+ 1 hữu ích để biết không có giải pháp sạch ngay bây giờ, và rằng một kludge là cần thiết –
Nếu báo giá kép không được thoát sau đó bạn có thể chạy với một vấn đề nếu báo giá này xảy ra được trong chuỗi của bạn. – Bogolt
ở cuối nó làm việc để viết và đọc cũng. Hay đây là chỉ ghi? – alfC