首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用json-spirit读取C++中的json字符串

使用json-spirit读取C++中的json字符串
EN

Stack Overflow用户
提问于 2013-05-30 11:34:55
回答 1查看 5.2K关注 0票数 3

如何在C++中使用json-spirit读取json字符串?我读了演示代码。我发现:

代码语言:javascript
复制
const Address addrs[5] = { { 42, "East Street",  "Newtown",     "Essex",         "England" },
                               { 1,  "West Street",  "Hull",        "Yorkshire",     "England" },
                               { 12, "South Road",   "Aberystwyth", "Dyfed",         "Wales"   },
                               { 45, "North Road",   "Paignton",    "Devon",         "England" },
                               { 78, "Upper Street", "Ware",        "Hertfordshire", "England" } };

我可以将字符串转换为json对象吗?

代码语言:javascript
复制
char* jsonStr = "{'name', 'Tom'}";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 17:24:24

json_spirit提供了bool read_string( const String_type& s, Value_type& value )bool read( const std::string& s, Value& value )来从字符串中读取json数据。

下面是一个示例:

代码语言:javascript
复制
string name;
string jsonStr("{\"name\":\"Tom\"}");
json_spirit::Value val;

auto success = json_spirit::read_string(jsonStr, val);
if (success) {
    auto jsonObject = val.get_obj();

    for (auto entry : jsonObject) {
      if (entry.name_ == "name" && entry.value_.type() == json_spirit::Value_type::str_type) {
        name = entry.value_.get_str();
        break;
      }
    }
}

您也可以使用ifstream而不是string从文件中读取json。

请注意,根据RFC4627,字符串以引号开头和结尾。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16827508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档