- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这个 JSON 对象:
{"books":[
{
"author" : "Petr",
"book_name" : "Test1",
"pages" : 200,
"year" : 2002
},
{
"author" : "Petr",
"book_name" : "Test2",
"pages" : 0,
"year" : 0
},
{
"author" : "STO",
"book_name" : "Rocks",
"pages" : 100,
"year" : 2002
}
]
}
例如,我需要找到一本书,其author
键等于Petr
。我怎样才能做到这一点?现在我有这段代码:
Json::Value findBook(){
Json::Value root = getRoot();
cout<<root["books"].toStyledString()<<endl; //Prints JSON array of books mentioned above
string searchKey;
cout<<"Enter search key: ";
cin>>searchKey;
string searchValue;
cout<<"Enter search value: ";
cin>>searchValue;
Json::Value foundBooks = root["books"]???; // How can I get here a list of books where searchKey is equal to searchValue?
}
提前致谢。
最佳答案
应该这样做:
std::vector<Json::Value> booksByPeter(const Json::Value& root) {
std::vector<Json::Value> res;
for (const Json::Value& book : root["books"]) // iterate over "books"
{
if (book["author"].asString() == "Petr") // if by "Petr"
{
res.push_back(book); // take a copy
}
}
return res; // and return
}
如果不是 C++11,则必须这样做:
const Json::Value& books = root["books"];
for (Json::ValueConstIterator it = books.begin(); it != books.end(); ++it)
{
const Json::Value& book = *it;
// rest as before
}
关于c++ - jsoncpp。通过匹配值查找数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27902576/
我现在才使用jsonCPP库几个月。我试图添加和删除数组中的对象。香港专业教育学院在不同的平台上使用了许多不同的JSON库,但我发现使用JsonCPP很难。 这是杰森: { "type": "Di
我正在尝试创建一个 json cpp 数组并用 std::vector 中的数据填充它。 我的代码是这样的 void Box_20::BuildCommitUploadPostData(const P
strcpy(this->encoding, jsonvalue.get("encoding", "").asCString()); 我需要在我的程序中使用 json 数据,昨天我使用 nuGet 下
我正在使用 v1.6.2 上的 jsoncpp 库Win32 平台。一切正常,我可以解析 json 并访问 Json:Values成功使用 v.["firstname"]等等。 问:我如何找到 Jso
我正在使用 C++ 中的 json,并决定试用 Jsoncpp。在我的 json 中,我有一些以科学计数法表示并包含负指数的值,例如 4.0e-06。当我去解析这个 json 字符串时,我得到了奇怪的
我在 JSONcpp 中有一个根,具有这样的字符串值。 Json::Value root; std::string val = "{\"stringval\": \"mystring\"}"; Js
我在使用 jsoncpp 时遇到问题.代码如下: Json::Value content; for ( int i=0; i < len; ++i) { content["res"].appe
我正在尝试将 JSON cpp 与 VS2008 一起使用。 谁能告诉我是否可以将二进制数据打包成 JSON 格式?我正在将图像文件读入 char* buffer,并将其放入 JSON::Value。
我正在使用 JSONCPP 记录我在服务器上收到的消息,但它没有附加消息,而是替换了最后一条消息。这是我的代码:ofstream 和 event 是私有(private)成员。 //std::of
我在 jsoncpp 查找了代码示例.对于成员数组,即下面 json 数据中的“插件” { // Default encoding for text "encoding" : "UTF
问题描述 我正在尝试为 JsonCpp 编写包装器.我的包装器必须具有以下功能 解析(const string& input) GetString(string& output, const stri
我最近升级到 JsonCpp 版本 1.6.5。 我注意到小数点后的数字为零的 float 在打印时会被截断。例如 2.0 打印为 2 我使用的以前的版本 (v0.6.0) 没有这样做。 这种行为是预
我正在使用 Jsoncpp 通过 Json::FastWriter 将 Json::value 写入字符串。 string s; s.append("me?json="); val["firstnam
我正在使用 jsoncpp 读取 JSON 文件。当我写回文件时,我的浮点值略有偏差。为了进行测试,我决定将文件解析为 Json::Value,然后将该值写回到文件中。我希望它看起来一样,但浮点值不同
我有这个 JSON 对象: {"books":[ { "author" : "Petr", "book_name" : "Test1", "pages" :
所以我最近安装了 JSONCPP,出于某种原因,当我尝试这段代码时它给了我错误: #include #include #include int main(){ bool alive =
我正在尝试使用 jsoncpp 的合并版本(最新版本),但它会产生 Unresolved external symbol 链接错误。我使用的代码是 #include int main(){ J
我的 json 对象中有一个列表,我想遍历列表中的元素我看到了以下帖子Iterating through objects in JsonCpp , 但这对我不起作用 我的 json 对象: {
JSONCPP 有一个编写器,但它似乎所做的只是从解析器获取信息,然后将其输出到字符串或流中。如何让它改变或创建新的对象、数组、值、字符串等并将它们写入文件? 最佳答案 #include 代码:
本文实例讲述了C++解析Json的方法。分享给大家供大家参考,具体如下: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要对VS
我是一名优秀的程序员,十分优秀!