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; }
執行結果
沒有留言:
張貼留言