{
    "MSGCODE":"RCP",
    "RESULT":"0",
    "REASON":"complete",
    "ACCNO":"",
    "TAMOUNT":"0.00",
    "TMKTVALUE":"0.00",
    "PAGE":"1",
    "NEXTPAGE":"2",
    "COUNT":"2",

"STOCKLISTS":
[
    {
        "STOCKSYMBOL":"",
        "GRADE":"",
        "SECURITYTYPE":"",
        "MARGINRATE":"0",
        "ACTUALVOLUME":"0",
        "AVGCOST":"0.000000",
        "AMOUNT":"0.00",
        "LASTPRICE":"0.00",
        "MKTVALUE":"0.00",
        "MR":"0.00"
    },
    {
        "STOCKSYMBOL":"",
        "GRADE":"",
        "SECURITYTYPE":"",
        "MARGINRATE":"0",
        "ACTUALVOLUME":"0",
        "AVGCOST":"0.000000",
        "AMOUNT":"0.00",
        "LASTPRICE":"0.00",
        "MKTVALUE":"0.00",
        "MR":"0.00"
    }
]
}



/**
* sample.c
*
* Created on: Jun 2, 2017
* Description : https://json-c.github.io/json-c/json-c-0.10/doc/html/json__object_8h.html
*/

#include <json/json.h>
#include 
#include 



char buf[1204L * 128L];



int main(int argc, char *argv[])
{
    FILE *fp = fopen(argv[1], "r");

    if(NULL == fp)
    {
        fprintf(stderr, "fopen() failed");
        return -1;
    }

    int n = fread(buf, 1, sizeof(buf), fp);
    buf[n] = 0;

    struct json_object *jobj;

    jobj = json_tokener_parse(buf);
    if(NULL == jobj) {
        return -1;
    }

    char KEY[100], SUBKEY[100];

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "MSGCODE");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "RESULT");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "REASON");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "ACCNO");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "TAMOUNT");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "TMKTVALUE");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "PAGE");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "NEXTPAGE");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    memset(KEY, 0x00, sizeof(KEY));
    strcpy(KEY, "COUNT");
    printf("[%s][%s]\n", KEY, json_object_get_string(json_object_object_get(jobj, KEY)) );

    struct json_object *pdata = NULL;
    if(json_object_object_get_ex(jobj, "STOCKLISTS", &pdata)) 
    {
        int i;
        for (i = 0; i < json_object_array_length(pdata); i++) 
        {
            struct json_object *tmp = json_object_array_get_idx(pdata, i);
            printf("-----------------------------------\n");
            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "STOCKSYMBOL");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "GRADE");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "SECURITYTYPE");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "MARGINRATE");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "ACTUALVOLUME");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "AVGCOST");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "AMOUNT");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "LASTPRICE");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "MKTVALUE");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );

            memset(KEY, 0x00, sizeof(KEY));
            strcpy(KEY, "MR");
            printf("[%.3d][%s][%s]\n", i + 1, KEY, json_object_get_string(json_object_object_get(tmp, KEY)) );
        }
    }
    return 0;
​}




+ Recent posts