2

C で json 配列を解析する方法について質問があります。cJSON で json を解析して C を使用する方法は知っていますが、json 配列を解析する方法について Google で結果を見つけることができません。 JSON配列ですが、私には合いません。

Web API から json 配列を受け取ると、次のようになります。

[{\"id\":\"25139\",\"date\":\"2016-10-27\",\"name\":\"Komfy Switch With Camera DKZ-201S\\/W Password Disclosure\"},{\"id\":\"25117\",\"date\":\"2016-10-24\",\"name\":\"NETDOIT weak password Vulnerability\"}]

ご覧のとおり、配列には多数の json があるため、配列を cJSON lib で解析するにはどうすればよいですか?

4

1 に答える 1

7

cJSON は、すべての範囲、つまり JSON 配列とオブジェクトの両方をサポートします。データにアクセスするときは、現在のピースのタイプが何であるかを理解する必要があります。

あなたの場合、単純な値を含むオブジェクトを含む配列です。したがって、これを処理する方法は次のとおりです。

int i;
cJSON *elem;
cJSON *name;
char *json_string = "[{\"id\":\"25139\",\"date\":\"2016-10-27\",\"name\":\"Komfy Switch With Camera DKZ-201S\\/W Password Disclosure\"},{\"id\":\"25117\",\"date\":\"2016-10-24\",\"name\":\"NETDOIT weak password Vulnerability\"}]";
cJSON *root = cJSON_Parse(my_json_string);
int n = cJSON_GetArraySize(root);
for (i = 0; i < n; i++) {
    elem = cJSON_GetArrayItem(root, i);
    name = cJSON_GetObjectItem(elem, "name");
    printf("%s\n", name->valuestring);
}

私はそれをコンパイルしていません。遠くないことを願っています。

于 2016-11-07T08:46:40.190 に答える