簡體   English   中英

如何使用變量作為原始JSON字符串中的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM