JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它以鍵值對的形式表示數據,是一種文本格式,易于閱讀和理解,因此被廣泛用于Web應用程序和移動應用程序中。
C語言中的JSON解析器可以將JSON數據解析成C語言中的數據類型。在JSON中,每個鍵值對都用冒號分隔,多個鍵值對用逗號分隔。
{ "name": "張三", "age": 20, "gender": "男" }
在C語言中,使用結構體來表示一個JSON對象。
struct json_object { char *key; enum { JSON_STRING, JSON_NUMBER, JSON_OBJECT, JSON_ARRAY } type; union { char *string; double number; struct json_object *object; struct json_array *array; } value; struct json_object *next; };
其中,key表示鍵的名稱,type表示該鍵值對的值的類型,value表示該鍵值對的值,next表示下一個鍵值對的指針。
使用C語言的JSON解析器,可以將上面的JSON數據解析成如下的結構體表示:
struct json_object *root = json_parse('{ "name": "張三", "age": 20, "gender": "男" }'); /* root->key == NULL */ /* root->type == JSON_OBJECT */ /* root->value.object->key == "name" */ /* root->value.object->type == JSON_STRING */ /* root->value.object->value.string == "張三" */ /* root->value.object->next->key == "age" */ /* root->value.object->next->type == JSON_NUMBER */ /* root->value.object->next->value.number == 20 */ /* root->value.object->next->next->key == "gender" */ /* root->value.object->next->next->type == JSON_STRING */ /* root->value.object->next->next->value.string == "男" */