新聞中心
在當今互聯(lián)網(wǎng)時代,數(shù)據(jù)交換已經(jīng)變得越來越頻繁且重要。為了滿足這種需求,數(shù)據(jù)格式逐漸標準化,其中一種極為廣泛應用的格式就是ON。ON被廣泛應用于Web應用程序和移動應用程序中,其主要優(yōu)點是簡單易用、輕量級、易于閱讀和編寫等。本文將深入探索在Linux系統(tǒng)下的ON包,以實現(xiàn)高效的數(shù)據(jù)交換。

成都地區(qū)優(yōu)秀IDC服務器托管提供商(創(chuàng)新互聯(lián)建站).為客戶提供專業(yè)的四川聯(lián)通機房服務器托管,四川各地服務器托管,四川聯(lián)通機房服務器托管、多線服務器托管.托管咨詢專線:13518219792
ON是什么
ON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript語言,但已經(jīng)成為一種通用的數(shù)據(jù)格式,可用于各種編程語言。ON格式的數(shù)據(jù)可以非常容易地讀取和解析,這使得它成為應用程序中數(shù)據(jù)傳輸?shù)氖走x格式。
ON的基本結構由兩種數(shù)據(jù)類型組成:
1. 鍵值對:一個字符串表示鍵,后面跟著一個冒號,然后是一個值。鍵值對用逗號分隔。例如:
“`
{“name”: “John”, “age”: 30}
“`
2. 值:可以是一個字符串、數(shù)字、對象、數(shù)組、布爾值或null。例如:
“`
“name”: “John”
“`
ON的優(yōu)點
相較于其他數(shù)據(jù)格式,ON有以下幾個優(yōu)點:
1. 高效:ON數(shù)據(jù)格式的數(shù)據(jù)體積很小,傳輸速度快。
2. 易讀寫:ON數(shù)據(jù)格式的字符串格式化很容易,易于讀寫。
3. 易解析:ON數(shù)據(jù)格式的解析起來是非常容易的。
4. 跨平臺支持:ON可以被不同操作系統(tǒng)和編程語言支持。
Linux下的ON包
在Linux系統(tǒng)下,C語言是使用最廣泛的編程語言之一。因此,使用C語言編寫ON處理程序是非??扇〉摹?在下面的介紹中,我們將深入探索四個流行的C語言ON包:Jansson、json-c、cON和yajl。
1. Jansson
Jansson是一個C語言編寫的ON庫,具有解析和構建ON文檔的功能。它在性能和易用性方面表現(xiàn)出色,被廣泛用于各種應用程序中。Jansson還支持對ON文檔進行合并、比較和驗證等操作。
以下是使用Jansson解析ON文檔的示例代碼:
“`
#include
int mn()
{
const char *json_string = “{\”name\”: \”John\”, \”age\”: 30}”;
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if (root) {
json_t *name, *age;
const char *name_str;
int age_int;
name = json_object_get(root, “name”);
name_str = json_string_value(name);
age = json_object_get(root, “age”);
age_int = json_integer_value(age);
printf(“Name: %s, Age: %d\n”, name_str, age_int);
} else {
fprintf(stderr, “error: on line %d: %s\n”, error.line, error.text);
return 1;
}
json_decref(root);
return 0;
}
“`
2. json-c
json-c是另一個C語言編寫的ON庫。它跟Jansson非常相似,也具有解析和構建ON文檔的功能。json-c支持ON文檔的基本操作,如添加、刪除和修改,以及ON文檔的打印及格式化輸出。
以下是使用json-c解析ON文檔的示例代碼:
“`
#include
#include
#include
int mn()
{
const char *json_string = “{\”name\”: \”John\”, \”age\”: 30}”;
struct json_object *root = json_tokener_parse(json_string);
struct json_object *name, *age;
const char *name_str;
int age_int;
json_object_object_get_ex(root, “name”, &name);
name_str = json_object_get_string(name);
json_object_object_get_ex(root, “age”, &age);
age_int = json_object_get_int(age);
printf(“Name: %s, Age: %d\n”, name_str, age_int);
json_object_put(root);
return 0;
}
“`
3. cON
cON是一個輕量、快速的C語言ON庫。它與Jansson和json-c相比,具有更小的內存占用和更快的解析速度。由于它非常容易使用,因此cON被廣泛應用于各種嵌入式系統(tǒng)。
以下是使用cON解析ON文檔的示例代碼:
“`
#include
#include
#include “cON.h”
int mn()
{
const char *json_string = “{\”name\”: \”John\”, \”age\”: 30}”;
cON *root = cON_Parse(json_string);
if (root) {
cON *name, *age;
const char *name_str;
int age_int;
name = cON_GetObjectItem(root, “name”);
name_str = name->valuestring;
age = cON_GetObjectItem(root, “age”);
age_int = age->valueint;
printf(“Name: %s, Age: %d\n”, name_str, age_int);
} else {
printf(“Error before: [%s]\n”, cON_GetErrorPtr());
return 1;
}
cON_Delete(root);
return 0;
}
“`
4. yajl
yajl(Yet Another ON Library)是另一個流行的C語言ON庫。它具有非常好的性能和靈活性,支持流式解析和生成ON。yajl的API使用起來非常方便,但比其他ON庫稍微復雜一些。
以下是使用yajl解析ON文檔的示例代碼:
“`
#include
#include
#include
#include
#include
static int print_name(void *ctx, const unsigned char *name, size_t name_len)
{
printf(“Name: %.*s, “, (int)name_len, name);
return 1;
}
static int print_age(void *ctx, long long age)
{
printf(“Age: %lld\n”, age);
return 1;
}
static yajl_callbacks callbacks = {
.yajl_string = print_name,
.yajl_number = print_age,
};
int mn()
{
const char *json_string = “{\”name\”: \”John\”, \”age\”: 30}”;
yajl_handle handle;
yajl_parser_config cfg = { 0, 0 };
yajl_status status;
handle = yajl_alloc(&callbacks, &cfg, NULL);
status = yajl_parse(handle, (const unsigned char *)json_string, strlen(json_string));
if (status != yajl_status_ok) {
printf(“Error: %s\n”, yajl_get_error(handle, 1, (const unsigned char *)json_string, strlen(json_string)));
return 1;
}
yajl_free(handle);
return 0;
}
“`
結論
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
Docker配置文件daemon.json解析
Docker Engine V1.12 之后版本,用戶可以自行創(chuàng)建 daemon.json 文件對 Docker Engine 進行配置和調整。要點如下:
該 –config-file 選項允許您以ON格式為守護程序設置任何配置選項。此文件使用與鍵相同的標志名稱,但允許多個條目的標志除外,它使用多個標志名稱,例如, labels 用于 label 標志。
配置文件中設置的選項不得與通過flags設置的選項沖突。如果文件和標志之間的選項重復,則docker守護程序無法啟動,無論掘芹握其值如何。我們這樣做是為了避免靜默忽略配置重新加載中引入的更改。例如,如果在配置文件中設置守護程序標簽并且還通過 –label 標志設置守護程序標簽,則守護程序無首知法啟動。守護程序啟動時將忽略文件中不存在的選項。
Linux上配置文件的默認位置是 /etc/docker/daemon.json 。該 –config-file 標志可用于指判慶定非默認位置。
修改配置文件之后需要重啟docker生效
systemctl restart docker.service
參考資料:
Daemon configuration file
daemon.json的作用
linux 下的json包的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux 下的json包,深入探索Linux下的ON包,實現(xiàn)高效數(shù)據(jù)交換,Docker配置文件daemon.json解析的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務器,香港云服務器,BGP云服務器,雙線云服務器,高防云服務器,成都云服務器,服務器托管。精選鉅惠,歡迎咨詢:028-86922220。
分享標題:深入探索Linux下的ON包,實現(xiàn)高效數(shù)據(jù)交換(linux下的json包)
網(wǎng)頁URL:http://fisionsoft.com.cn/article/cdhiscd.html


咨詢
建站咨詢
