libjson으로 array 표현하기

libjson으로 array 표현하는 방법을 알아봅니다.

  1. JSONNODE* root  = NULL;  
  2. JSONNODE* array = NULL;  
  3. JSONNODE* node1 = NULL;  
  4. JSONNODE* node2 = NULL;  
  5. LPTSTR txt = NULL;  
  6.   
  7. root  = json_new(JSON_NODE);  
  8. array = json_new(JSON_ARRAY);  
  9. node1 = json_new(JSON_NODE);  
  10. node2 = json_new(JSON_NODE);  
  11.   
  12. json_push_back(node1, json_new_i(TEXT("val1"), 1));  
  13. json_push_back(node2, json_new_i(TEXT("val2"), 2));  
  14.   
  15. json_push_back(array, node1);  
  16. json_push_back(array, node2);  
  17. json_set_name(array, TEXT("list"));  
  18.   
  19. json_push_back(root, json_new_i(TEXT("ver"), 100));  
  20. json_push_back(root, array);  
  21.   
  22. txt = json_write_formatted(root);  
  23.   
  24. // 사용  
  25.   
  26. json_free(txt);  
  27. json_delete(root);  

이렇게 되면 아래와 같은 결과로 표현됩니다.

  1. {  
  2.     "ver":100,  
  3.     "list":[  
  4.         {"val1":1},  
  5.         {"val2":2}  
  6.     ]  
  7. }  

와 같이 됩니다.
즉, list object로 array 처럼 사용할 수 있습니다.
물론, array이기 때문에, 내부 node의 schema는 동일(즉, "val1")해야 되지만,
위 코드는 테스트를 위함이기 때문에, val1 val2 와 같이 되어 있습니다.