在C語言中,解析JSON可以使用cJSON庫。但是對于一些特定的應用,例如需要在嵌入式設備上解析JSON,或者開發者更喜歡使用C語言進行開發,此時我們可以使用C語言通過JavaScript來解析JSON。
通過JS解析JSON的方法非常簡單,我們只需要使用jsmn庫來解析JSON,然后將解析結果傳回C語言中即可。以下是一個基本的例子:
//使用jsmn庫解析JSON jsmn_parser parser; jsmntok_t tokens[MAX_TOKENS]; int num_tokens = jsmn_parse(&parser, json_str, strlen(json_str), tokens, MAX_TOKENS); //將解析結果傳回C語言中 for (int i = 0; i< num_tokens; i++) { switch (tokens[i].type) { case JSMN_STRING: printf("string: %.*s\n", tokens[i].end - tokens[i].start, json_str + tokens[i].start); break; case JSMN_OBJECT: printf("object\n"); break; case JSMN_ARRAY: printf("array\n"); break; case JSMN_PRIMITIVE: printf("primitive\n"); break; default: break; } }
以上代碼中,我們調用了jsmn_parse函數來解析JSON字符串,將解析結果保存到tokens數組中。解析完成后,我們遍歷tokens數組,根據每個token的type屬性來判斷它表示的是否是字符串、對象、數組或原始值。最后通過printf函數將解析結果輸出。
另外需要注意的是,由于我們在C語言中使用了JS解析工具,因此需要在編譯時添加相關的JS庫文件依賴。
下一篇c 遍歷json