利用rapidjson实现解析嵌套的json的方法示例
利用rapidjson解析嵌套的json
看json串1:{"system":{"version":"v2.6.1","name":"value"}}
废话少说,直接撸代码:
#include#include #include #include #include #include #include //请自己下载开源的rapidjson #include"rapidjson/prettywriter.h" #include"rapidjson/rapidjson.h" #include"rapidjson/document.h" #include"rapidjson/stringbuffer.h" #include"rapidjson/writer.h" #include"rapidjson/memorystream.h" usingnamespacestd; usingrapidjson::Document; usingrapidjson::StringBuffer; usingrapidjson::Writer; usingnamespacerapidjson; stringgetVersion(conststring&jvStr) { Documentdocument; if(document.Parse(jvStr.c_str()).HasParseError()||!document.HasMember("system")) { return""; } constrapidjson::Value&jvObject=document["system"]; if(!jvObject.IsObject()) { return""; } if(!jvObject.HasMember("version")) { return""; } constrapidjson::Value&jv=jvObject["version"]; returnjv.GetString(); } intmain(intargc,char*argv[]) { strings="{\"system\":{\"version\":\"v2.6.1\",\"name\":\"value\"}}"; cout< 结果:
{"system":{"version":"v2.6.1","name":"value"}}
v2.6.1再看字符串:{"system":"{\"version\":\"v2.6.1\",\"name\":\"value\"}"}
直接上马:
#include#include #include #include #include #include #include //请自己下载开源的rapidjson #include"rapidjson/prettywriter.h" #include"rapidjson/rapidjson.h" #include"rapidjson/document.h" #include"rapidjson/stringbuffer.h" #include"rapidjson/writer.h" #include"rapidjson/memorystream.h" usingnamespacestd; usingrapidjson::Document; usingrapidjson::StringBuffer; usingrapidjson::Writer; usingnamespacerapidjson; stringgetStringFromJson(conststring&jsStr,conststring&strKey) { Documentdocument; if(document.Parse(jsStr.c_str()).HasParseError()||!document.HasMember(strKey.c_str())) { return""; } constrapidjson::Value&jv=document[strKey.c_str()]; returnjv.GetString(); } intmain(intargc,char*argv[]) { strings="{\"system\":\"{\\\"version\\\":\\\"v2.6.1\\\",\\\"name\\\":\\\"value\\\"}\"}"; cout< 结果:
{"system":"{\"version\":\"v2.6.1\",\"name\":\"value\"}"}
{"version":"v2.6.1","name":"value"}
v2.6.1第二种方式的json串,看起来太恶心了。
另外,再次强调一下,json串解析的时候,容易coredump,所以要做好异常判断,也要注意类型。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接