NSIS 修改更新json檔案

2022-08-18 07:21:18 字數 3693 閱讀 4703

讀取和生成json檔案

section "

example1.json

"example1

; 讀取json檔案

nsjson::set /file $exedir\input\example1.json

; 把內容序列化到檔案中

nsjson::serialize /format /file $exedir\output\example1.json

detailprint `generate: $exedir\output\example1.json`

sectionend

json檔案的編碼轉換

section /o `convert example1_unicode.json (no bom)` example1b

; 讀取乙個 unicode編碼的json檔案

nsjson::set /file /unicode $exedir\input\example1_unicode.json

; 把unicode編碼的json檔案轉換成 ansii 編碼的檔案.

nsjson::serialize /format /file $exedir\output\example1b_ascii.json

detailprint `generate: $exedir\output\example1b_ascii.json`

; 仍然序列化成unicode編碼的json檔案

nsjson::serialize /format /file /unicode $exedir\output\example1b_unicode.json

detailprint `generate: $exedir\output\example1b_unicode.json`

sectionend

建立乙個新的json檔案

section /o `generate example6.json` example6

nsjson::set /value `{}` ; 建立根節點

; 設定html.head.title =example6

nsjson::set `html` `head` `title` /value `"

example6"`

; 設定html.body.h1 =

nsjson::set `html` `body` `h1` /value ``

; 設定html.body.h1 = "

hello,\tmy name is

"nsjson::set `html` `body` `h1` /value `"

hello,\tmy name is"`

; 設定html.body.h1.i = "

stuart.

"nsjson::set `html` `body` `h1` `i` /value `"

stuart."`

; 設定html.body.h1 = "

howdy

"nsjson::set `html` `body` `h1` /value `"

howdy"`

; 設定html.body.h1 = "!"

nsjson::set `html` `body` `h1` /value `"!"

` ; 設定html.body.h1 = [ true, "

hello

", false

] nsjson::set `html` `body` `h1` /value `[ true, "

hello

", false

]` ; 最終html.body.h1為該值,前面的都會被覆蓋

; 設定html.body.h2 = [ "

i like

", }, "

very much!"]

nsjson::set `html` `body` `h2` /value `[ "

i like

", }, "

very much!"]`

; 設定html.body.a href="

" = "

my website!

"nsjson::set `html` `body` `a href="

"` /value `"

my website!"`

; 序列化到json檔案中

nsjson::serialize /format /file $exedir\output\example6.json

detailprint `generate: $exedir\output\example6.json`

sectionend

最終生成的json檔案內容如下:

修改json檔案

section

; 讀取json配置檔案

clearerrors

; 查詢指定節點是否存在

nsjson::get `connectionstrings` `default` /end

$ $pop $r0

detailprint `connectionstrings->default =$r0`

$ clearerrors

; 更新資料庫連線字串設定

nsjson::set `connectionstrings` `default` /value `"

server=localhost; port=3306; database=newdb; uid=root; pwd=newpwd; convert zero datetime=true"`

nsjson::get `connectionstrings` `default` /end

$ $pop $r0

detailprint `connectionstrings->default =$r0`

$; 序列化到檔案中

sectionend

nsjson::set 使用者在記憶體中設定內容,可以自定義設定也可以從檔案中讀取,讀取檔案使用 /file引數,後面跟json檔案的路徑名

nsjson::set /file $exedir\input\example1.json

如果沒有指定檔案,可以直接建立乙個空的json檔案,使用 /value設定內容

nsjson::set /value `{}`

如果要設定指定節點的內容,直接在set後跟節點名稱即可

nsjson::set `connectionstrings` `default` /value `"server=localhost; port=3306; database=newdb; uid=root; pwd=newpwd; convert zero datetime=true"`

最終儲存到檔案,可以指定格式化引數 /format 同時帶上檔案引數 /file後面跟檔案的路徑名

php 讀寫json檔案。追加,修改json

追加寫入使用者名稱下檔案 code 001 動態資料 json string file get contents text.json 從檔案中讀取資料到php變數 data json decode json string,true 把json字串轉成php陣列 data code array a a...

c 修改Json檔案內容

讀取 從檔案中讀取json資料是很容易的,以c qt環境為例讀取以下資料 讀取的 qfile fi m prospath fi.open qiodevice readonly sonparseerror json error sondocument jsondoc sondocument fromj...

NSIS安裝msi檔案

安裝包中需要安裝activeperl 5.10.0.1002 mswin32 x86 283697.msi檔案,用exec exewait exeshell直接呼叫都不行,google了一下發現baidu裡其實有講 windows r installer.v 3.01.4000.1823 msiex...