Я использую библиотеку Янссона для C-проекта.
У меня возникли проблемы с пониманием того, как использовать decf.Должен ли он использоваться после каждого нового параметра json_t или нет?Как я понимаю, Янссон заимствует ссылки, чтобы сделать это проще.
Если я запускаю эту программу и проверяю значения a_id и a_test, они совпадают.Я ожидал ошибку или ноль для a_test.
Я попробовал ту же идею, но затем я добавил decf для json_acc и json_param, но она потерпела крах, прежде чем я смог прочитать значение 1: th.Я предполагал сбой, но не раньше, чем a_test.
Это часть более крупного проекта, но я пытаюсь добавить пример, чтобы показать основы.
сторона API:
json_t* parObj;
void loadFile(char* path)
{
json_error_t error;
parObj = json_load_file(path, 0, &error);
}
int getAccountId(char* id)
{
json_t* json_acc = json_object_get(parObj, "accounts");
json_t* json_param = json_object_get(json_acc, id);
return json_integer_value(json_param);
}
void cleanJson()
{
json_decref(parObj);
}
сторона вызывающего абонента:
loadFile("/home/jacob/accountDump.json");
int a_id = getAccountId("10");
cleanJson();
int a_test = getAccountId("10");