[英]How do you use variables as data in a raw JSON string?
我正在使用使用原始JSON字符串的C ++ API。 例如:
string data = R"JSON({
"key1": "value1",
"key2": "value2"
})JSON";
我想將變量用作值。 例如:
string value1 = "55.2";
string value2 = "3.14";
string data = R"JSON({
"key1": value1, //somehow use the string variables here
"key2": value2
})JSON";
這樣有可能嗎?
您可以使用operator+
連接字符串。
#include <iostream>
#include <string>
int main() {
std::string value = "55.2";
std::string str = R"({"key1":)" + value + "}";
std::cout << str;
}
如果您只需要執行一次,則可以遵循其他答案/評論的建議,並手動將結果字符串連接起來。
如果您可能還需要做更多的事情(例如,為某個網絡API構建巨大的JSON請求,或者將巨大的響應解析回去),請繼續閱讀:)
我強烈不喜歡使用字符串operator+
,字符串流, sprintf
或任何其他字符串操作手動連接JSON的想法。
基於字符串連接的任何解決方案時,你只和數字工作可能工作時,你的JSON雖小,但如果你需要連接字符串值成JSON,你有麻煩盡快得到您的一個"
或\\
字符您字符串,您需要進行適當的轉義,而且,如果串聯的JSON對象變大,那么維護該代碼將是一場噩夢。
解決方案?
如果需要使用C ++,請找到一個為您執行JSON操作的庫。 有很多 。 通常最好使用經過測試的第三方代碼來很好地解決此特定任務。 是的,開始使用外部依賴關系可能比手動連接字符串花費更多時間,但這只是使代碼更好。
如果您的任務與調用網絡API和操作JSON密切相關,那么C ++可能不是最佳選擇語言,除非有其他考慮(或除非是編程任務:))。 現代腳本語言(Python,JavaScript和其他語言)本地支持JSON和網絡調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.