欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json解析 默認(rèn)值

在使用C語言進(jìn)行JSON解析的時(shí)候,有時(shí)候需要為解析出來的值指定一個(gè)默認(rèn)值。這在處理缺省值時(shí)尤為常見。下面我們將介紹如何在C語言中給JSON解析結(jié)果指定默認(rèn)值。

#include <stdio.h>
#include <jansson.h>
int main()
{
char *json_string = "{'name': 'Tom', 'age': 18, 'score': null}";
json_t *root = json_loads(json_string, 0, NULL);
json_t *name = json_object_get(root, "name");
json_t *age = json_object_get(root, "age");
json_t *score = json_object_get(root, "score");
const char *default_name = "Jerry";
int default_age = 20;
int default_score = 0;
const char *result_name;
int result_age;
int result_score;
result_name = json_is_string(name) ? json_string_value(name) : default_name;
result_age = json_is_integer(age) ? json_integer_value(age) : default_age;
result_score = json_is_null(score) ? default_score : json_integer_value(score);
printf("name: %s, age: %d, score: %d\n", result_name, result_age, result_score);
json_decref(root);
return 0;
}

在上面的代碼中,我們首先加載了一段JSON字符串,在這個(gè)JSON字符串中有"{"name": "Tom", "age": 18, "score": null}"三個(gè)字段。接下來,我們通過json_object_get函數(shù)獲取了這三個(gè)字段的json_t對(duì)象。

然后,我們定義了每個(gè)字段對(duì)應(yīng)的默認(rèn)值,并定義了最終結(jié)果的變量。在獲取每個(gè)字段的值的時(shí)候,我們分別使用了json_is_string、json_is_integer和json_is_null函數(shù)來判斷這個(gè)字段是否存在及其類型。如果這個(gè)字段存在且類型正確,我們就使用相應(yīng)的json函數(shù)獲取它的值。否則就使用該字段對(duì)應(yīng)的默認(rèn)值。

最后,我們將獲取到的三個(gè)值打印出來。