C語言分割JSON數據
在處理后臺返回的JSON數據時,我們需要將JSON數據按照自己的需要進行分割。這里介紹一種C語言分割JSON數據的方法。
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 100 int split_json(char* json_str, char* key, char* value) { char* pos; pos = strstr(json_str, key); // 查找關鍵字 if (pos == NULL) { return -1; // 未找到關鍵字 } pos += strlen(key) + 2; // 關鍵字后面的冒號和空格 char* end_pos; end_pos = strstr(pos, ","); // 查找逗號 if (end_pos == NULL) { end_pos = strstr(pos, "}"); // 查找結束的大括號 } if (end_pos == NULL) { return -1; // 未找到分隔符 } int len = end_pos - pos; strncpy(value, pos, len); // 復制值 value[len] = '\0'; // 字符串結束符 return 0; } int main() { char* json = "{\"name\": \"Tom\", \"age\": 18, \"gender\": \"male\"}"; char key[MAX] = "name"; char value[MAX]; if (split_json(json, key, value) == 0) { printf("%s: %s\n", key, value); } else { printf("Not Found\n"); } return 0; }
代碼說明:
- split_json函數用于分割JSON數據中的key和value
- json_str:需要分割的JSON字符串
- key:需要查找的key(要求在JSON字符串中是唯一的)
- value:查找到的value將被保存在這里
- strstr函數用于查找字符在字符串中出現的位置
- strncpy函數用于復制字符串
- 如果未找到key或value,返回-1