source: branches/PublicaMundi_David-devel/zoo-project/zoo-kernel/zoo_json.c @ 602

Last change on this file since 602 was 602, checked in by david, 9 years ago
  • json tools to convert map and maps data structures
File size: 1.4 KB
Line 
1#include <string.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include <sys/stat.h>
5#include "service.h"
6#include "service_internal.h"
7#include <json/json.h>
8
9
10
11void maptojson(json_object ** obj,map * m){
12    json_object *jobj = json_object_new_object();
13    map *tmp = m;
14    while(tmp != NULL){
15        json_object_object_add(jobj,tmp->name,json_object_new_string(tmp->value));
16        tmp = tmp->next;
17    }
18    *obj = jobj;
19}
20
21void mapstojson(json_object ** obj,maps * m){
22    json_object *jobj = json_object_new_object();
23    maps *tmp = m;
24    while(tmp!=NULL){
25        json_object *map_obj;
26        maptojson(&map_obj,tmp->content);
27        json_object_object_add(jobj,tmp->name,map_obj);
28        tmp = tmp->next;
29    }
30    *obj = jobj;
31}
32
33
34map* jsontomap(json_object * jobj){
35    map *m;
36    json_object_object_foreach(jobj, key, val){
37        if (json_object_is_type(val, json_type_string)){
38            addMapToMap(&m,createMap(key,json_object_get_string(val)));
39        }
40        else {
41            /* Attention ce n'est pas une map */
42            return NULL;
43        }
44     }
45        return m;
46}
47
48int jsontomaps(json_object * jobj,maps ** m){
49    maps *maps_tmp;
50    json_object_object_foreach(jobj, key, val){
51        maps_tmp = (maps *) malloc (MAPS_SIZE);
52        maps_tmp->content = jsontomap(val); 
53        maps_tmp->name = zStrdup(key);
54        addMapsToMaps(m,maps_tmp);
55    }
56    return 0;
57}
58 
59
Note: See TracBrowser for help on using the repository browser.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png