C 語言是一門強大的編程語言,可以用來開發眾多應用。其中一個有用的功能是可以輸出多層嵌套的 JSON。
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ char *name; int age; char *gender; }Person; typedef struct{ char *name; int year; Person *members; int numOfMembers; }Band; void printPersonJson(Person p); void printBandJson(Band b); int main(){ Person p1 = {"John", 25, "male"}; Person p2 = {"Emily", 22, "female"}; Person p3 = {"Mike", 24, "male"}; Person *members = malloc(sizeof(Person) * 3); members[0] = p1; members[1] = p2; members[2] = p3; Band band = {"Rockers", 2002, members, 3}; printBandJson(band); free(members); return 0; } void printPersonJson(Person p){ printf("{\n"); printf(" \"name\": \"%s\",\n", p.name); printf(" \"age\": %d,\n", p.age); printf(" \"gender\": \"%s\"\n", p.gender); printf("}"); } void printBandJson(Band b){ printf("{\n"); printf(" \"name\": \"%s\",\n", b.name); printf(" \"year\": %d,\n", b.year); printf(" \"members\": [\n"); for(int i=0; i上面的代碼定義了兩個結構體:Person 和 Band,其中 Person 保存了一個人的信息,Band 包含了一個樂隊的信息,包括成員信息。
printPersonJson 函數打印一個 Person 結構體的 JSON,printBandJson 函數打印一個 Band 結構體的 JSON。在 printBandJson 中,需要打印一個數組,因此需要循環遍歷每個成員并調用 printPersonJson 函數。
運行上面的代碼,會輸出如下 JSON:
{ "name": "Rockers", "year": 2002, "members": [ { "name": "John", "age": 25, "gender": "male" }, { "name": "Emily", "age": 22, "gender": "female" }, { "name": "Mike", "age": 24, "gender": "male" } ] }這個 JSON 包含了一個樂隊的信息,包括成員的信息。現在你可以使用 C 語言輸出多層嵌套的 JSON。