配置文件模型
AWTK-MVVM 內置了一些配置文件模型,用于讀寫各種配置文件,比如,JSON/XML/INI/CSV/UBJSON 等。
文件名中可以引用下面的變量。
- ${app_dir} 應用程序目錄
- ${user_dir} 用戶目錄
- ${temp_dir} 臨時目錄
json(url=${app_dir}/demos/demo_conf/demo.json)
支持 http/https 協議。支持 HTTP 協議時,要啟用 socket。支持 HTTPS 協議時,要啟用 ssl。
示例
json(url=http://t.weather.sojson.com/api/weather/city/101030100)
支持從資源加載數據。
1. json 配置
示例
{"network" : {"device" : "eth0","ip" : "192.168.1.1"},"serial" : {"device" : "COM1","baudrate" : "115200"}
}
功能:用于讀寫 JSON 文件。
1.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
屬性名 | 屬性的值 |
---|---|
network.device | eth0 |
network.ip | 192.168.1.1 |
serial.device | COM1 |
serial.baudrate | 115200 |
1.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
1.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑(必須) |
示例
json(url=${app_dir}/demos/demo_conf/demo.json)
2. ubjson 配置
示例
{"network" : {"device" : "eth0","ip" : "192.168.1.1"},"serial" : {"device" : "COM1","baudrate" : "115200"}
}
功能:用于讀寫 UBJSON 文件。
2.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
屬性名 | 屬性的值 |
---|---|
network.device | eth0 |
network.ip | 192.168.1.1 |
serial.device | COM1 |
serial.baudrate | 115200 |
2.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
2.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑(必須) |
示例
ubjson(url=${app_dir}/demos/demo_conf/demo.ubjson)
3. xml 配置
示例
<root><network device="eth0" ip="192.168.1.1" /><serial device="COM1" baudrate="115200" />
</root>
功能:用于讀寫 XML 文件。
3.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
屬性名 | 屬性的值 |
---|---|
network.device | eth0 |
network.ip | 192.168.1.1 |
serial.device | COM1 |
serial.baudrate | 115200 |
3.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
3.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑(必須) |
示例
xml(url=${app_dir}/demos/demo_conf/demo.xml)
4. ini 配置
示例
[network]device = eth0ip = 192.168.1.1
[serial]device = COM1baudrate = 115200
功能:用于讀寫 INI 文件。
4.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
屬性名 | 屬性的值 |
---|---|
network.device | eth0 |
network.ip | 192.168.1.1 |
serial.device | COM1 |
serial.baudrate | 115200 |
4.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
4.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑(必須) |
示例
ini(url=${app_dir}/demos/demo_conf/demo.ini)
5. csv 配置
示例
eth0,192.168.1.1
eth1,192.168.1.2
eth2,192.168.1.3
功能:用于讀寫 CSV 文件。
5.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
用于列表項綁定
屬性名 | 屬性的值 |
---|---|
item.device | 訪問第一列 |
item.ip | 訪問第二列 |
item.0 | 訪問第一列 |
item.1 | 訪問第二列 |
item.[0] | 訪問第一列 |
item.[1] | 訪問第二列 |
5.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
5.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑(必須) |
col_names | string | 列名,用分隔符分隔 |
sep | char | 分隔符,默認為逗號 |
示例
csv(url=${app_dir}/demos/demo_conf/demo.csv, col_names='device,ip', sep=',')
6. json_array 配置
示例
{"networks": [{"device": "eth0","ip": "192.168.1.1"},{"device": "eth1","ip": "192.168.1.2"},{"device": "eth2","ip": "192.168.1.3"}]
}
功能:用于讀寫 JSON 文件(方便綁定到列表視圖)。
6.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
用于列表項綁定
屬性名 | 屬性的值 |
---|---|
item.device | device |
item.ip | ip |
6.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
6.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑 (必須) |
prefix | string | 路徑前綴(可選) |
示例
json_array(url=${app_dir}/demos/demo_conf/demo_array.json, prefix=networks)
7. xml_array 配置
示例
<networks><network device="eth0" ip="192.168.1.1" /><network device="eth1" ip="192.168.1.2" /><network device="eth2" ip="192.168.1.3" />
</networks>
功能:用于讀寫 XML 文件(方便綁定到列表視圖)。
7.1 內置屬性
可以通過路徑引用屬性值。比如上面的例子,可以用下面的方式訪問:
用于列表項綁定
屬性名 | 屬性的值 |
---|---|
item.device | device |
item.ip | ip |
7.2 內置命令
命令 | 參數 | 說明 |
---|---|---|
save | 無 | 保存 |
reload | 無 | 重新加載 |
7.3 創建參數
參數 | 類型 | 說明 |
---|---|---|
url | string | 文件路徑 (必須) |
prefix | string | 路徑前綴(可選) |
示例
xml_array(url=${app_dir}/demos/demo_conf/demo_array.xml, prefix=networks)