2013-10-31 12 views
6

में int करने के लिए मैं C++ में एक json मूल्य पढ़ रहा हूँConvert json मूल्य C++

Json::Reader reader 

का उपयोग कर और मूल्य Json::Value root

यह जड़ "उम्र" और "id" और मैं शामिल में संग्रहित है रूट ["आयु"] int में कनवर्ट करना चाहते हैं।

मैंने इसे .str() का उपयोग करके स्ट्रिंग में बदलने की कोशिश की लेकिन प्राप्त नहीं हो सका।

कोई सुझाव?

+0

क्या आप jsoncpp का उपयोग कर रहे हैं? ऐसा लगता है कि आप उन वर्गों पर आधारित हैं जिनका आप उल्लेख कर रहे हैं। यदि ऐसा है, तो दूसरों के सुझाव देने से यह आसान है क्योंकि jsoncpp में पहले से ही वैल्यू क्लास को इसे परिवर्तित करने के लिए एक अंतर्निहित विधि है। –

उत्तर

0

आप का उपयोग करने के

std::stoi(string) 

उदाहरण http://en.cppreference.com/w/cpp/string/basic_string/stol

#include <iostream> 
#include <string> 

int main() 
{ 
    std::string test = "45"; 
    int myint = std::stoi(test); 
    std::cout << myint << '\n'; 
} 
+0

मेरी जड़ ["आयु"] जेसन लौटाती है :: मान नहीं है std :: string यही कारण है कि मैं stoi() – rocx

8

से लिया jsoncpp में वे Json::Value वस्तु पर सहायक विधियां उपलब्ध करा सक्षम होना चाहिए। आप इसे बदलने के लिए मूल्य पर केवल asInt() विधि को कॉल कर सकते हैं।

int ageAsInt = root["age"].asInt() 
+0

का उपयोग करने में असमर्थ हूं, अब मुझे std :: runtime_error के रूप में त्रुटि मिलती है: प्रकार int – rocx

+0

में परिवर्तनीय नहीं है आपके JSON का एक उदाहरण प्रश्न में अविश्वसनीय रूप से सहायक होगा। यह भी पुष्टि करें कि आप अपने प्रश्न में किस पुस्तकालय का उपयोग कर रहे हैं ताकि हम बेहतर उत्तर दे सकें। –

+0

मेरी जेसन सामग्री है: {"आयु": "2", "तिथि": "2010-12-07 09-40-38"} मैं jsoncpp और json_utils – rocx

संबंधित मुद्दे