jsoncpp解析 json对象


void GetHttpValue::urlopen(std::string url)
{
std::string stTemp;
char chTemp[1000];
ZeroMemory(chTemp, 1000);
HINTERNET hSession = InternetOpen(_T("UrlTest"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hSession != NULL)
{
HINTERNET hHttp = InternetOpenUrl(hSession, url.c_str(), NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
if (hHttp != NULL)
{
printf("%s\n\n", url.c_str());
BYTE Temp[MAXSIZE];
ULONG Number = 1;
while (Number > 0)
{
InternetReadFile(hHttp, Temp, MAXSIZE - 1, &Number);
Temp[Number] = '\0';
CopyMemory(chTemp, Temp, Number);
printf("%s", Temp);
}


InternetCloseHandle(hHttp);
hHttp = NULL;
}
InternetCloseHandle(hSession);
hSession = NULL;
}
stTemp = chTemp;
cout << "=========================" << endl << endl; // 到这的作用:访问一个url地址,获取它的返回值(一个json对象)
cout << stTemp << endl;


std::string stResult = stTemp; //从这开始解析这个json对象
Json::Reader readerJson;
Json::Value  valueJson;




if (readerJson.parse(stResult, valueJson))
{
int code = valueJson["code"].asInt();
std::string msg = valueJson["msg"].asString();
int userId = valueJson["data"]["userId"].asInt();
std::string nickName = valueJson["data"]["nickName"].asString();
std::string headImgURL = valueJson["data"]["headImgURL"].asString(); //这里有多重包含
int gold = valueJson["data"]["gold"].asInt();
int sex = valueJson["data"]["sex"].asInt();


}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要解析JSON文件,首先需要安装jsoncpp库,可以通过以下命令安装: ``` sudo apt-get install libjsoncpp-dev ``` 安装完毕后,就可以使用jsoncpp库来解析JSON文件了。下面是一个简单的示例程序: ```cpp #include <iostream> #include <fstream> #include <jsoncpp/json/json.h> using namespace std; int main() { ifstream ifs("example.json"); Json::Reader reader; Json::Value root; if (!reader.parse(ifs, root)) { cout << "Failed to parse JSON" << endl; return 1; } string name = root["name"].asString(); int age = root["age"].asInt(); cout << "Name: " << name << endl; cout << "Age: " << age << endl; return 0; } ``` 在这个示例程序中,首先通过ifstream读取example.json文件,然后使用Json::Reader来解析JSON文件,解析结果存放在Json::Value对象root中。可以通过root对象来访问JSON中的数据。 在这个示例程序中,我们访问了JSON中的"name"和"age"字段,并将它们打印出来。 需要注意的是,以上示例程序中的JSON文件格式如下: ```json { "name": "John", "age": 30 } ``` 如果JSON文件的格式不正确,解析过程中可能会出现错误。因此,在实际应用中,需要根据实际情况进行错误处理。 ### 回答2: JSONCpp是一个C++的库,用于解析和生成JSON格式的数据。它提供了一组简单的API来读取和修改JSON数据。 使用JSONCpp解析JSON文件的过程包括以下几个步骤: 1. 引入JSONCpp库:在编程环境中,需要将JSONCpp库文件引入到项目中。可以从JSONCpp的官方网站上下载并配置库文件。 2. 打开JSON文件:使用JSONCpp库中的`Json::CharReader`来打开JSON文件,将其读取为一个字符串。 3. 解析JSON文件:使用JSONCpp库中的`Json::Value`来解析JSON字符串。可以使用`Json::Reader`的`parse()`方法来将JSON字符串转换为`Json::Value`对象。 4. 提取JSON数据:使用`Json::Value`对象的成员访问运算符`[]`来获取JSON数据。可以使用`isMember()`方法判断指定的成员是否存在,使用`asString()`、`asInt()`等方法获取指定成员的值。 5. 遍历JSON数据:如果JSON数据是一个数组类型,可以使用`size()`方法获取数组的长度,使用`operator[]`来访问数组中的元素。 6. 修改JSON数据:使用`Json::Value`对象的成员访问运算符`[]`来修改JSON数据。可以使用`append()`方法向数组类型的JSON数据中添加元素。 7. 保存JSON文件:使用JSONCpp库中的`Json::StyledWriter`对象将`Json::Value`对象转换为字符串,并将其写入文件中。 总结起来,使用JSONCpp解析JSON文件的过程可以归纳为:引入库文件、打开JSON文件、解析JSON文件、提取和操作JSON数据、保存JSON文件。这样就可以实现对JSON文件的读取和解析操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值