Как я могу в linux извлечь json массив данных в структуру, используя c -код - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть json -файл с массивом данных, ключ: значение, и я хочу l oop и выбрать все имена из *

[ { "streamnr": 1, "name": "a �", "linktime": 0.000000 }, { "streamnr": 2, "name": "b �", "linktime": 0.000000 }, { "streamnr": 3, "name": "c �", "linktime": 0.000000 }, { "streamnr": 4, "name": "david", "linktime": 0.000000 }]

в c коде структуры Я читаю файл в буфер и анализирую

fread(buffer, sz , 1, fh);
json_object * jresult = json_object_new_array(); 
jresult = json_tokener_parse(buffer);

сейчас, если я oop json_array для json_objects, ie {struct 1}, {struct 2}, ... для выборки и извлеките имя.

    json_object *val;
    for ((int) i = 0; i < json_object_array_length(jresult); i++) {

        val = json_object_array_get_idx(jresult, i);
        //printf("strömnr [%d] = %s\n", i, json_object_to_json_string(val));
        /* Loop through array of values */
        printf( "Values:[%d] = %s \n", i, json_object_to_json_string( val ) );

        // here I fail ????
        printf("name : %s", val->name);
        // this 'work' but include "streamnr":1 ... and I want to skip that
        memcpy(&cell, (char *)json_object_to_json_string( val ), sizeof(CELL));


}

Любые хорошие идеи, как извлечь каждый ключ и значение обратно в структуру

struct fields{
    string name;
    double linktime;
 } 
...