LDP string_to_ld(const char*s) { JO jo = json_parse(s); if(!jo) { fprintf(stderr, "String passed from Ruby is invalid JSON: \n\n%s\n", s); return 0; } LDP ld = json_to_ld(jo); if(!ld) { fprintf(stderr, "String passed from Ruby is valid JSON, " "but can't load laser_data. \n\n%s\n", s); return 0; } jo_free(jo); return ld; }
int main() { JO jo; /* the monkey */ LDP ld; while((jo = json_read_stream(stdin))) { if(!(ld = json_to_ld(jo))) { fprintf(stderr, "Could not transform to laser_data:\n\n"); fprintf(stderr, "-----\n"); fprintf(stderr, "%s", json_object_to_json_string(jo)); fprintf(stderr, "-----\n"); continue; } jo = ld_to_json(ld); printf("%s", json_object_to_json_string(jo)); printf("\n"); } return 0; }