C 百度 OCR JSON 是一種基于百度 OCR API 的調用結果,是將圖片和文本數據轉換為JSON格式的串行化數據結構。具體含義如下:
{ "log_id": 12345678, "words_result_num": 4, "words_result": [ {"words": "標題"}, {"words": "正文部分1"}, {"words": "正文部分2"}, {"words": "結尾部分"} ] }
在這個JSON中,每個元素都有其特定的意義。log_id 表示本次調用的日志標識,words_result_num 表示識別結果的數量,words_result 則表示每個識別結果,其中的 words 表示識別出的文本內容。
使用 C 語言解析 C 百度 OCR JSON 是一件比較容易的事情。我們可以使用 cJSON 庫來快速解析 JSON 數據:
#include <stdio.h> #include <cJSON.h> int main() { const char* json_string = "{ ... }"; cJSON* json = cJSON_Parse(json_string); int words_result_num = cJSON_GetObjectItem(json, "words_result_num")->valueint; cJSON* words_result = cJSON_GetObjectItem(json, "words_result"); for (int i = 0; i < words_result_num; i++) { cJSON* words = cJSON_GetArrayItem(words_result, i); printf("%s\n", cJSON_GetObjectItem(words, "words")->valuestring); } cJSON_Delete(json); return 0; }
在這段代碼中,我們首先使用 cJSON_Parse 函數將 JSON 字符串解析為 cJSON 對象,然后使用 cJSON_GetObjectItem 函數獲取指定的子元素。之后我們使用 cJSON_GetArrayItem 函數遍歷 words_result 數組,最后使用 cJSON_GetObjectItem 函數獲取 words 元素,并打印出其 valuestring。