添加部分常用API。 添加 newlife rpc 通讯。
JiuHuan 编写于 2024-08-16 10:56:23
microCLib

#include "cJsonProcess.h"


// 处理 Json
bool JsonProcessMsg(Buffer2_t* buff, cJsonProcess_t* ProcessArray)
{
	if (buff == NULL)return false;
	if (buff->data == NULL)return false;

	if (ProcessArray == NULL)
	{
		DebugPrintf("ProcessArray = NULL \r\n");
		return false;
	}

	cJSON* root = cJSON_Parse((char*)buff->data);
	if (root == NULL) return false;
	
	cJSON* action = cJSON_GetObjectItem(root, "action");
	if (action == NULL)
	{
		DebugPrintf("JsonProcessMsg haven't \"action\"\r\n");

		cJSON_Delete(root);
		return false;
	}

	// 处理
	for (int i = 0;; i++)
	{
		if (ProcessArray[i].ActionName == NULL)break;
		if (ProcessArray[i].JsonProcess == NULL)continue;

		if (StringIndexOf(action->valuestring, ProcessArray[i].ActionName) == 0)
		{
			DebugPrintf("JsonProcessMsg %s\r\n", ProcessArray[i].ActionName);
			ProcessArray[i].JsonProcess(root, ProcessArray[i].Process);
			break;
		}
	}

	cJSON_Delete(root);
	return true;
}