Я читаю и анализирую файл json;все работает правильно, если в файле нет новой строки;Вот код:
#include <json-c/json.h>
#include <stdio.h>
#include <string.h>
void parse_json(json_object * jobj);
int main(int argc, char* argv[]) {
FILE *fp = fopen(argv[1], "r");
char tmp[65000] = { 0x0 };
if (fp == NULL) {
perror("Error opening file");
return (-1);
} else {
while (fp && fgets(tmp, sizeof(tmp), fp)) {
}
}
fclose(fp);
json_object * jobj = json_tokener_parse(tmp);
parse_json(jobj);
}
void parse_json(json_object * jobj) {
printf("\n");
enum json_type type;
json_object_object_foreach(jobj, key, val)
{
type = json_object_get_type(val);
switch (type) {
case json_type_string:
if (strcmp(key, "product") == 0) {
printf("***** key found! ***** \n");
printf("key: %s, value: %s \n", key,
json_object_get_string(val));
printf("***** End keys ***** \n");
} else {
printf("key: %s, value: %s \n", key,
json_object_get_string(val));
}
break;
}
}
}
Это рабочий JSON:
{"product": "Live JSON generator"}
И это сбой JSON.
{
"colors" :"blue"
}
Так что я думаю, что моя ошибкав части чтения файла .. Что я делаю не так?