官方中文主页:http://www.json.org/json-zh.html
项目地址:https://github.com/jehiah/json-c
示例:
json_object * cmd = json_object_new_object(); json_object_object_add(cmd, "cmd", json_object_new_int(1)); json_object * parm = json_object_new_object(); json_object_object_add(parm, "id", json_object_new_int(35)); json_object_object_add(parm, "ip", json_object_new_string("192.168.1.24")); json_object_object_add(parm, "port", json_object_new_int(8899)); json_object_object_add(parm, "user", json_object_new_string("admin")); json_object_object_add(parm, "pass", json_object_new_string("12345")); json_object_object_add(parm, "other", NULL); json_object_object_add(cmd, "parm", parm); std::string strJson = json_object_to_json_string(cmd); // json_object_put(parm); json_object_put(cmd); return strJson;
{ "cmd": 1, "parm": { "id": 35, "ip": "192.168.1.24", "port": 8899, "user": "admin", "pass": "12345", "other": NULL } }
——2014-7-9 14:18:08 补充解析多级object的例子:
/*{ "cmd": 10, "param": { "name": "lala", "age": 25 } }*/ int _tmain(int argc, _TCHAR* argv[]) { std::string strJson = "{\"cmd\": 10,\"param\": {\"name\": \"lala\",\"age\": 25}}"; char szJson[1024] = {0}; strcpy(szJson, strJson.c_str()); json_object * cmd = json_tokener_parse(szJson); int nCmd = json_object_get_int(json_object_object_get(cmd, "cmd")); json_object * param = json_object_object_get(cmd, "param"); std::string strName = json_object_get_string(json_object_object_get(param, "name")); int strAge = json_object_get_int(json_object_object_get(param, "age")); json_object_put(cmd); return 0; }
参考资料:
1、jsonc 使用笔记