JSON是JavaScript Object Notation的縮寫,而BSON內的成員也是跟JSON類似,不過是擺二進位(Binary)
而BSON是 MongoDB使用的格式,怎麼使用JSON跟BSON這就不贅述了!
想必再搜尋這樣功能時的讀者應該都已經清楚兩者格式
----
測試環境
作業系統:Ubuntu - 15.04 x64
Library: libjson-c & libmongoc
--
接下來來稍微介紹一下再C語言中怎麼將JSON Object插入BSON中。
假設現在我有一個JSON Object如下:
如果我將BSON設成string為Rawdata,value為JSON object的話該怎麼做呢?
STEP 1. 先建構好json_object
STEP 2. 利用JSON創建BSON
STEP 3. 將轉換好的BSON做為value插入最上層的BSON內
int main(void)
{
struct json_object *json = NULL;
bson_t *b = NULL;
bson_t *a = bson_new ();
json = json_object_new_object();
/* STEP 1. setup JSON object */
json_object_object_add(json, "Name", json_object_new_string("RenWei"));
json_object_object_add(json, "Age", json_object_new_int( 22 ));
json_object_object_add(json, "Sex", json_object_new_string("Male"));
printf("%s\n",json_object_get_string(json));
/* STEP 2. 利用JSON創建BSON */
b = bson_new_from_json( json_object_get_string(json), -1, NULL);
/* STEP 3. 將轉換好的BSON做為value插入最上層的BSON內 */
bson_append_document(a, "RawData", -1, b);
/* Show */
char *str = bson_as_json( a, NULL);
printf("%s\n",str);
/* free the memory */
bson_free(str);
bson_destroy( b );
bson_destroy( a );
json_object_put(json);
return 0;
}
執行結果

沒有留言:
張貼留言