我真的很服同事的耐心,他们最经典的做法就是解析消息这种操作会写无数遍。比方说:


cJSON *method = cJSON_GetObjectItem(json, “method”);

if (method == “foo”)
{
   cJSON* ip = cJSON_GetObjectItem(json, “ip”);
   cJSON* id = cJSON_GetObjectItem(json, “id”);
   foo(ip, id);
}
else if (method == “bar”)
{
   cJSON* ip = cJSON_GetObjectItem(json, “ip”);
   cJSON* id = cJSON_GetObjectItem(json, “id”);
   bar(ip, id);
}
// 更多的 else if 


然后构造json也这么玩:


int sendFoo(std::string ip, std::string ip)
{

  cJSON *root =   
  cJSON_CreateObject();
  cJSON_AddItemToObject(root, “method”, cJSON_CreateObject(“foo”));
  cJSON_AddItemToObject(root, “ip”, cJSON_CreateObject(ip.c_str()));
  cJSON_AddItemToObject(root, “id”, cJSON_CreateObject(ip.c_str()));
  send(cJSON_Print(root));
}

int sendBar(std::string ip, std::string ip)
{

  cJSON *root =   
  cJSON_CreateObject();
  cJSON_AddItemToObject(root, “method”, cJSON_CreateObject(“bar”));
  cJSON_AddItemToObject(root, “ip”, cJSON_CreateObject(ip.c_str()));
  cJSON_AddItemToObject(root, “id”, cJSON_CreateObject(ip.c_str()));
  send(cJSON_Print(root));
}


我写这两个函数的时候写完第一个复制黏贴第二个,然后把foo改成bar就行了,这两个函数拿去查重查重率能破95%,就这种写法他们能不厌其烦的复制黏贴十几二十遍,我真的要疯。
 
 
Back to Top