我正在使用boost来读取JSON文件,这是我的代码

for (int i = 0; i < 10; i++)
{
    try
    {
        boost::property_tree::ptree pt;
        boost::property_tree::read_json("macAddr.txt", pt);

        BOOST_FOREACH(boost::property_tree::ptree::value_type& v, pt)
        {
            BOOST_FOREACH(boost::property_tree::ptree::value_type& i, v.second)
            {
                std::string s = i.second.get_value("");
                std::cerr << s << "\n";
            }
            std::cerr << "\n\n";
        }
    }
    catch (std::exception const& e)
    {
        std::cerr << e.what() << std::endl;
    }
}

并抛出异常“macAddr.txt(1):输入的预期结束”

JSON文件的内容是:

[{"mac":"60:21:C0:20:6A:8C","power":-73,"sensor_id":254,"timestamp":"2015-05-16 19:32:19"},{"mac":"CC:FA:00:B4:3D:44","power":-52,"sensor_id":254,"timestamp":"2015-05-16 19:32:17"},{"mac":"CC:3A:61:82:D1:20","power":-76,"sensor_id":254,"timestamp":"2015-05-16 19:32:12"},{"mac":"0C:48:85:FF:1C:2D","power":-79,"sensor_id":254,"timestamp":"2015-05-16 19:32:12"},{"mac":"34:A3:95:A2:00:2E","power":-76,"sensor_id":254,"timestamp":"2015-05-16 19:32:11"}]

===============>>#1 票数:3 已采纳

您可能有尾随数据,例如

{ "a" : 1 }
{ "b" : 2 }

属性树将只读取第一个顶层对象或数组。

更新

MVCE不是问题: Live On Coliru

使用尾随单词,您将看到您报告的错误: Live On Coliru

  ask by Jenia Sakirko translate from so

未解决问题?本站智能推荐:

1回复

使用Boost property_tree读取JSON

我正在尝试使用Boost的property tree来解析JSON文件。 这是JSON文件 和一个MWE 问题我目前知道如何读取最外面的变量a和c 。 但是,我在阅读其他级别时遇到困难,例如b_a, b_b_a, b_d_a等。 我怎么能用Boost做到这一点? 我不一定
1回复

Boost属性树Json读取包含LPWSTR的文件

我有一些代码应该使用WriteFile在文件中写入内容。 要写入文件的内容类型是LPWSTR即wchar_t * 。 该文件将写入ip , ssl和compression 。 请考虑以下代码: 该文件的内容将有 但是使用read_json失败并给出错误: 代码有什么
2回复

使用boost property_tree创建json数组

我在使用boost库,C ++中的属性树创建json数组时遇到了麻烦。 我把这个帖子作为参考,特别是这一部分 结果是: 但是如果我想实现只是简单的数组而没有任何包含它的对象,我该怎么办? 像这样: 非常感谢。
1回复

如何使用boost :: property_tree用数组根解析JSON

如何通过使用Boost.PropertyTree从阵列作为根节点获取JSON数据?
1回复

使用boost属性树遍历json属性键和值

我正在尝试使用boost::property_tree读取json文件。 我已经能够读取json文件并获取属性值。 现在,我尝试遍历属性树中的所有属性,并打印出所有键值对。 我不确定如何确切地做到这一点。 我尝试使用BOOST_FOREACH但最终遇到编译错误。 如何正确遍历属性树变量
1回复

使用boost属性树解析JSON

我正在构建一个从themoviedb.com获取电影信息的应用程序。 该信息在JSON文件中提供。 我正在尝试使用boost属性树存储信息。 但有一点问题。 我通过以下代码说明了这个问题: 但是当我运行它时,我得到以下输出: 有谁知道我做错了什么? 我想这是在BOO
2回复

如何使用json解析器的boost property_tree创建空数组节点

我正在尝试在json中创建一个数组节点,其输出如下所示: 但是当数组为空时,它将输出以下内容: 那不是我想要的,我需要这个: 我怎样才能做到这一点 ? 而且我不需要在数字前后加上双引号(“”)。 有人可以帮忙吗? 我的代码如下: 感谢您的关注。
2回复

解析json后,boost属性树无法检索记录

我有一个示例json记录,我通过boost json解析器解析并将其保存到boost属性树以获取所有键值对。下面的代码我能够获得树的第一个属性,但我怎样才能得到第二个属性值? 当我试图得到它时,它向我显示“没有这样的节点”的异常。 如果我迭代树,然后它显示我所有的键。我不明白它是什么错。
2回复

使用boost属性树来读取int数组

我有一些带有一些整数数组变量的JSON,如下所示: 我想使用boost property_tree,例如: 这不起作用,我尝试过的int指针也没有任何变化。 我如何从属性树中读取数组?
1回复

boost property_tree :: json_parser :: read_json&iostreams :: filtering_streambuf

我试图阅读放气的json并遇到类型转换问题,这里是代码 编译说: src / ABPacking.cpp:48:错误:没有匹配函数来调用'read_json(boost :: iostreams :: filtering_streambuf,std :: allocator,b