我在用cJSON库。对于使用JSON的body示例请求,如下所示:
{
"user": {
"name":"user name",
"city":"user city"
}
}我添加这样的对象和它的工作:
cJSON *root;
cJSON *user;
root = cJSON_CreateObject();
cJSON_AddItemToObject(root,"user", user = cJson_CreateObject());
cJSON_AddStringToObject(user, "name", name.c_str());
cJSON_AddStringToObject(user, "city", city.c_str());但现在我的身体有点不同了:
{
"user": {
"informations:"{
"name1":"user name1",
"name2":"user name 2"
}
}
}然后尝试添加这样的对象:
cJSON *root;
cJSON *user;
cJSON *info;
root = cJSON_CreateObject();
cJSON_AddItemToObject(root,"user", user = cJson_CreateObject());
cJSON_AddItemToObject(user,"informations", info = cJson_CreateObject());
cJSON_AddStringToObject(info, "name", name.c_str());
cJSON_AddStringToObject(info, "city", city.c_str());使用cJSON是正确的方法吗?因为它不起作用,而且我不知道问题是在我的C++中,还是在我发送数据到我的C++服务器的Java客户机中。
发布于 2017-04-07 08:56:10
虽然您没有指定,但是为什么您的代码不能工作,下面的代码应该会生成您提供的示例。
#include <iostream>
#include "cJSON.h"
int main() {
cJSON *root;
cJSON *user;
cJSON *info;
std::string name1 = "user name1";
std::string name2 = "user name 2";
root = cJSON_CreateObject();
cJSON_AddItemToObject(root,"user", user = cJSON_CreateObject());
cJSON_AddItemToObject(user,"informations", info = cJSON_CreateObject());
cJSON_AddStringToObject(info, "name1", name1.c_str());
cJSON_AddStringToObject(info, "name2", name2.c_str());
std::cout << cJSON_Print(root) << std::endl;
return 0;
}cJSON文档看起来非常简单,代码看起来一般都很好。在cJSON源代码中还有一个"test.c“文件,在这里您可以找到更多如何使用它的代码示例。
https://stackoverflow.com/questions/43272300
复制相似问题