首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jsoncpp问题

Jsoncpp问题
EN

Stack Overflow用户
提问于 2011-09-26 11:36:22
回答 3查看 9K关注 0票数 3

我正在使用Jsoncpp解析c++的json格式。不过,我不明白它是如何工作的;缺乏文档和示例来帮助我入门,我想知道是否有人能给我提供一些快速的提示。我发现处理文件的唯一例子..。

  1. 我使用HTTP堆栈在缓冲区中获取json消息。例如,缓冲区包含消息{"state":"Running"}。我如何使用Json::reader来解析它呢?同样,我发现的唯一一个例子就是从文件中读取
  2. 如何将值写入Json消息?例如,我想将"monkey : no""running : yes"写到Json消息中,然后在GET请求中使用该消息。

谢谢

更新:

例如,如何解析包含json消息的缓冲区,如:

代码语言:javascript
复制
char* buff;
uint32_t buff_size;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-26 11:46:44

也许这是你问题的第一部分的好例子:

代码语言:javascript
复制
Json::Value values;
Json::Reader reader;
reader.parse(input, values);

Json::Value s = values.get("state","default value");
票数 6
EN

Stack Overflow用户

发布于 2011-09-26 11:42:29

除了缺乏文件之外,什么都没有。是的,它主要是参考文档,但它是相当好的和良好的交叉链接。

  1. 只有阅读文件
  2. 只有使用这个类或者可能是http://jsoncpp.sourceforge.net/class_json_1_1_styled_writer.html
票数 2
EN

Stack Overflow用户

发布于 2015-12-21 12:41:18

下面是供您参考的示例代码:

file.json

代码语言:javascript
复制
{
"B":"b_val2",
"A":{
        "AA":"aa_val1", 
        "AAA" : "aaa_val2",
        "AAAA" : "aaaa_val3"
     },
"C":"c_val3",
"D":"d_val4"
}

詹森使用场景如下所示,用于上述示例json文件。

代码语言:javascript
复制
#include <iostream>
#include "json/json.h"
#include <fstream>

using namespace std;

int main(){

Json::Value root;
Json::Reader reader;
const Json::Value defValue;         //used for default reference
std::ifstream ifile("file.json");

bool isJsonOK = ( ifile != NULL && reader.parse(ifile, root) );
if(isJsonOK){

    const Json::Value s = root.get("A",defValue);
    if(s.isObject()){

        Json::Value s2 = s.get("AAA","");
        cout << "s2 : " << s2.asString() << endl;
    }else{
        cout << "value for key \"A\" is not object type !" << endl;
    }
}
else
    cout << "json not OK !!" << endl;

return 1;

}

输出::

s2 : aaa_val2

此外,我还使用了"amalgamate.py“来生成和使用上面的示例源的jsoncpp。

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

https://stackoverflow.com/questions/7554456

复制
相关文章

相似问题

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