2013-10-31 21 views
6

Tôi đang đọc một giá trị json trong C++ sử dụnggiá trị json Chuyển đổi sang int trong C++

Json::Reader reader 

và giá trị được lưu trữ trong Json::Value root

gốc này chứa "tuổi" và "id" và tôi muốn chuyển đổi root ["age"] thành int.

Tôi đã cố chuyển đổi nó thành chuỗi bằng .str() nhưng không thể nhận được.

Bất kỳ đề xuất nào?

+0

Bạn đang sử dụng jsoncpp? Có vẻ như bạn đang dựa trên các lớp bạn đang đề cập đến. Nếu vậy, nó dễ hơn những gì người khác đang đề xuất vì jsoncpp đã có phương thức dựng sẵn trên lớp Value để chuyển đổi nó. –

Trả lời

0

Bạn sẽ có thể sử dụng

std::stoi(string) 

Ví dụ lấy từ 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

gốc của tôi ["tuổi"] trả về json :: giá trị không phải là tiêu chuẩn :: chuỗi đó là lý do tại sao tôi không thể sử dụng stoi() – rocx

8

Trong jsoncpp họ cung cấp phương pháp helper trên đối tượng Json::Value. Bạn chỉ có thể gọi phương thức asInt() trên giá trị để chuyển đổi nó.

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

Bây giờ tôi gặp lỗi như std :: runtime_error: Loại không chuyển đổi thành int – rocx

+0

Một ví dụ về JSON của bạn sẽ vô cùng hữu ích trong câu hỏi. Đồng thời xác nhận bạn đang sử dụng thư viện nào trong câu hỏi của mình để chúng tôi có thể trả lời tốt hơn. –

+0

Nội dung json của tôi là: {"tuổi": "2", "ngày": "2010-12-07 09-40-38"} Tôi đang sử dụng jsoncpp và json_utils – rocx

Các vấn đề liên quan