Имам следния проблем
Имам този JSON стринг
GeSHi (Javascript):
- 	{ 
- 	     "program": { 
- 		 "destination": "400", 
- 		 "function": { 
- 		     "value1": "123", 
- 		     "value2": "123" 
- 		 } 
- 	     } 
- 	} 
-   
Трябва от този код като се получи да се извика функция и да й се предадът двете променливи
Успях да подкарам обръщането на абикновенни променливи в JSON стринг и обратно, но сега как да се извика функцията следкато се получи и се обърне пак в стойности
GeSHi (C):
- #include <jansson.h> 
- #include <string.h> 
- #include "util.h" 
-   
- int main() 
- { 
-   
- 	/* 
- 	{ 
- 	     "program": { 
- 		 "destination": "400", 
- 		 "function": { 
- 		     "value1": "123", 
- 		     "value2": "123" 
- 		 } 
- 	     } 
- 	} 
-   
- 	*/ 
-   
- 	/*generate this string*/ 
-   
-     	char *resultz; 
-   
- 	json_t *root, *rootz, *computer_listing; 
-   
- 	computer_listing = json_object(); 
-   	json_object_set_new(computer_listing, "varible1", json_string("STX")); 
-   	json_object_set_new(computer_listing, "varible2", json_string("STlX")); 
-   
-   	root = json_object(); 
- 	json_object_set_new(root, "destination", json_string("400")); 
-   	json_object_set_new(root, "Function", computer_listing); 
-   
-   
- 	rootz = json_object(); 
-   	json_object_set_new(rootz, "DX57", root); 
-   
- 	resultz = json_dumps(rootz, 0); 
-   
-   
-   
-   
- 	/* The idea is that this message came from somewhere else */ 
- 	const char *msg = 
- 	"{\"program\": {\n" 
- 	"    \"destination\": 400,\n" 
- 	"    \"function\": {\n" 
- 	"      \"value1\": 123,\n" 
- 	"      \"value2\": 123\n" 
- 	"    }\n" 
- 	"  }\n" 
- 	"}\n"; 
-   
- 	int destination, value1, value2, result; 
- 	json_t *msg_j; 
- 	json_error_t err; 
-   
- 	msg_j = json_loads(msg, 0, &err); 
- 	if (!msg_j) { 
- 		fprintf(stderr, "%s\n", err.text); 
- 		return 1; 
- 	} 
-   
- 	result = json_unpack_ex(msg_j, &err, JSON_STRICT, "{s:{s:i, s:{s:i, s:i}}}" 
- 		, "program", "destination", &destination 
- 		, "function", "value1", &value1, "value2", &value2);  
- 	json_decref(msg_j); 
-   
- 	if (result) { 
- 		fprintf(stderr, "%s\n", err.text); 
- 		return 1; 
- 	} 
-   
- 	printf("Success!\ndestination: %i, value1: %i, value2: %i\n",-  destination ,-  value1 ,-  value2 )- ; 
 
- 	return 0; 
-   
-   
-   
-   
-     return 0; 
- } 
-   
Горното го написах използвайки библиотеката JANSSON