kdb mount config.json user/tests/yajl yajl
kdb set user/tests/yajl 'This May Be the Year I Disappear'
kdb ls user/tests/yajl
#> user/tests/yajl
kdb get user/tests/yajl
рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ This May Be the Year I Disappear
рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдПрдХ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдРрд╕рд╛ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛? рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдореВрд▓ рдХреБрдВрдЬреА рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛?
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧреА:
"This May Be the Year I Disappear"
ред рдкреНрд▓рдЧрдЗрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рдорд╛рди рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдКрдкрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ:
printf '"This May Be the Year I Disappear"' > (kdb file user/tests/yajl/)
kdb get user/tests/yajl
#> This May Be the Year I Disappear
ред
рддреЛ рдХреНрдпрд╛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ? рдпрд╣ рдХрд╛рдлреА рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ!
рддреЛ рдХреНрдпрд╛ рдХреЗрд╡рд▓ рд╕реЗрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ?
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╣рд╛рдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдЕрдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ @ markus2330 рджрд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдзрдиреНрдпрд╡рд╛рджред
рд╕реНрд░реЛрдд src / plugins / yajl / yajl_gen.c рдФрд░ src / plugins / yajl / yajl_parse.c рдореЗрдВ рд╣реИ
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ @sanssecours рдиреЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд▓рд┐рдЦрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рджреЗрдЦреЗрдВ doc / tutorials / storage-plugins.md)ред рддреЛ рдЖрдк рдЕрдЧрд▓реЗ рдЕрдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ # 2132 (# 2477 рд╢рд╛рдпрдж рдЗрд╕реА рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИ) рдФрд░ рдЕрдиреНрдп рдпрд╛рдЬ рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВред рдЖрдкрдХрд╛ рдореБрдЦреНрдп рдХрд╛рдо рдпрд╛рд▓рдЬ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ - рдмрд╛рд╣рд░реА рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ (# 1862 рджреЗрдЦреЗрдВ)ред
рдпрджрд┐ рдореИрдВ рдПрдХ рдЦрд╛рд▓реА json рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реВрдВ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ {}
), рддреЛ рдирд┐рдореНрди рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ kdb set system/lvas/cm/yajl "test"
рдХрд╣рддрд╛ рд╣реВрдВред
elektraYajlSet
рдХреЛ KeySet рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ (system/lvas/cm/yajl,test)
рд╣реЛрддрд╛ рд╣реИред
рдХреЙрд▓ рдореЗрдВ elektraGenEmpty
рджреВрд╕рд░реЗ рдХреНрд▓реЙрдЬрд╝ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ KeySets рдХрд╛ рдЖрдХрд╛рд░ 1 рд╣реИред
рд╕реНрдЯреНрд░реИрдореНрдк рднреА рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЗрд░реЗрдВрдЯреЗ рдХреЗ рдкрд╛рд╕ рдХреАрд╕реЗрдЯ рдореЗрдВ рдЕрдВрддрд┐рдо рдХреБрдВрдЬреА рдХреЗ рд╕рдорд╛рди рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рдЦрд╛рд▓реА рдирдХреНрд╢рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ elektraYajlSet рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рддреЛ рдЙрд╕ рдмрд┐рдВрджреБ рдЬрд╣рд╛рдВ рдЦрд╛рд▓реА рдирдХреНрд╢реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдкрд░, рдореИрдВ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ @sanssecours рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ рдХрд┐ рдПрдХ json рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреБрдВрдЬреА рдореВрд▓реНрдп рдЖрдЙрдЯрдкреБрдЯ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдпрд╣рд╛рдБ ред
рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ kdb рдЙрд╕ рдорд╛рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ kdb set system/lvas/cm/yajl/second "hi"
рдЬреИрд╕реА рдХреЙрд▓ рдЗрд╕ {"__dirdata": "test", "second": "hi"}
рддрд░рд╣ рдПрдХ json рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдХреНрд▓реАрдирд░ рдорд┐рд▓реЗрдЧрд╛ рдпрджрд┐ рдореИрдВ рд╕реАрдзреЗ json рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ {"__dirdata": "test"}
рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдПрдХ рд╣реА рд╢рдмреНрджрд╛рд░реНрде рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрд╡рд▓ рдкреНрд▓рдЧ рдЗрди рдХреБрдВрдЬреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдХрд┐ elektraYajlSet рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЦреБрдж рдХреЛ ElektraYajlSet рдореЗрдВ KeySet рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ @ markus2330 рд╕реБрдЭрд╛рд╡ рд╣реИ?
рд╣рд╛рдБ, Directoryvalue KeySet elektraYajlSet рдкреНрд░рд╛рдкреНрдд рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдХреЗрд╡рд▓ рдкреЗрд░реЗрдВрдЯрдХреЗ рдореМрдЬреВрдж рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рддрдм рдЗрд╕реЗ "рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛" рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди ElektraGenEmpty рдХреА рдХреБрдЫ рдорд╛рдиреНрдпрддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЕрдм рд╕рдЪ рдирд╣реАрдВ рд╣реИрдВ (рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛)ред рддреЛ рдЕрдиреНрдп рдХреАрдбрд╝реЗ рд╣реИрдВ, рдЬреИрд╕реЗ # 2132
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдХреНрд▓реАрдирд░ рдорд┐рд▓реЗрдЧрд╛ рдпрджрд┐ рдореИрдВ рд╕реАрдзреЗ json рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ {"__dirdata": "рдкрд░реАрдХреНрд╖рдг"} рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рд╢рдмреНрджрд╛рд░реНрде рд╕рдорд╛рди рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ {"": "test"}
рдПрдХ рдорд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдиреНрдпреВрдирддрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдпрд╣ "рдКрдВрдЯ" рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
@sanssecours рдЖрдк рд╢рд╛рдпрдж рдкреЗрд░реЗрдВрдЯреЗрдп рдФрд░ "рдЦрд╛рд▓реА рдХреБрдВрдЬреА" (%) (рдпрд╛ рдЕрдм рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо TODO) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░реЗрдЬ-рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдк рд╕рдВрднрд╡рддрдГ рд╕реНрдЯреЛрд░реЗрдЬ-рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ parentKeys рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗтАж
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
ред рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╣реИред
рдФрд░ "рдЦрд╛рд▓реА рдХреБрдВрдЬреА" (%) (рдпрд╛ рдЕрдм рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо TODO)?
рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдЦрд╛рд▓реА рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡реНрдпрдХреНрддрд┐ рд╣реВрдВред
рдореИрдВ рдпрд╣рд╛рдБ @sanssecours рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХреЛрдб рдорд╛рди рдХреЛ рдПрдХ json рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рдерд╛ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ YAJL рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡реИрдз JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╣рдореЗрд╢рд╛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдПрдХ рд╕рд░рдгреА рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдореВрд▓реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
"рдЦрд╛рд▓реА рдХреБрдВрдЬреА" (%)
рдЦрд╛рд▓реА рдЪрд╛рдмрд┐рдпрд╛рдБ рдЖрдкрдХреЛ {"root": {"": "something"}}
рдЬреИрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ KeySet рдореЗрдВ рдХреИрд╕реЗ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ?
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ YAJL рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡реИрдз JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╣рдореЗрд╢рд╛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдПрдХ рд╕рд░рдгреА рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣ рдмрджрд▓рд╛ рд╣реБрдЖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ: https://stackoverflow.com/questions/13318420/is-a-single-string-value-considered-valid-json
Https://www.ietf.org/rfc/rfc7159.txt рдореЗрдВ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИрдВ рдЬреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ "рдХреЗрд╡рд▓ рдорд╛рди" рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╛рдЬрд▓ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ... (yajl 2.1.0-2 + тАЛтАЛb3 рддреНрд░реБрдЯрд┐ Expected тАЬ{тАЭ but found тАЬ"тАЭ
)
RFC 7159 рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рд╣рдо рдирдХреНрд╢рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
"some value"
-> рдорд╛рддрд╛-рдкрд┐рддрд╛ = "рдХреБрдЫ рдореВрд▓реНрдп"
{"", "some value"}
-> рдорд╛рддрд╛-рдкрд┐рддрд╛ /% = "рдХреБрдЫ рдореВрд▓реНрдп"
рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╛рдЬрд▓ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ... (рдЪреЗрдВрдЬрд▓реЙрдЧ рдпрд╣ рднреА рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛)ред
рдЦрд╛рд▓реА рдЪрд╛рдмрд┐рдпрд╛рдБ рдЖрдкрдХреЛ {"рд░реВрдЯ": {"": "рдХреБрдЫ"}} рдЬреИрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ KeySet рдореЗрдВ рдХреИрд╕реЗ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ?
YAML CPP рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ:
kdb mount config.yaml user/tests/yaml yamlcpp
printf '{"root": {"": "something"}}' > "$(kdb file user/tests/yaml)"
kdb ls user/tests/yaml
#> user/tests/yaml/root/%
kdb get user/tests/yaml/root/%
#> something
ред рдореИрдВрдиреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЦрд╛рд▓реА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ ред рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд▓рдЧрдЗрди рдореЗрдВ setBaseName
рдХреЛ рд╕рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡реИрд▓реНрдпреВ ( ""
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓ рдХрд░рдирд╛, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рджреЗрдЦрдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: +1:
@sanssecours рдХреНрдпрд╛ рд╣рдо рдЕрдм RFC 7159 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрджрд┐ рдХреЗрд╡рд▓ рдкреЗрд░реЗрдВрдЯрдХреЗ рд╕реЗрдЯ рд╣реЛ рддреЛ рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЕрдм рд╣рдо RFC 7159 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рд╣рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдпрджрд┐ рдХреЗрд╡рд▓ рдкреЗрд░реЗрдВрдЯрдХреЗ рд╕реЗрдЯ рд╣реЛ рддреЛ рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ?
рд╡реЗ рдХреЗрд╡рд▓ рдкрд╛рда рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ (рдХреБрдВрдЬреА рдХреЗ рдмрд┐рдирд╛):
kdb mount config.yaml user/tests/yaml yamlcpp
kdb set user/tests/yaml value
kdb file user/tests/yaml | xargs cat
#> value
ред
рдореИрдВрдиреЗ рдЗрд╕ рдХрдорд┐рдЯ рдореЗрдВ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рд╛ред
рдпрд╣ рдпрдЬ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЕрдЧрд░ рд╡рд╣ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ @ markus2330?
рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрджрд┐ KeySet рдХрд╛ рдЖрдХрд╛рд░ 1 рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдХреБрдВрдЬреА рдЗрд╕рдореЗрдВ рд╣реИред рдлрд┐рд░ рдореИрдВ рдЙрд╕ рдХреБрдВрдЬреА рдХрд╛ рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореБрдЭреЗ elektraGenOpenValue
рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреНрдпрдерд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
YAML CPP рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ:
...
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдпрдЬрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?
рдпрд╣ рдпрдЬ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ
рдХреМрди рд╕рд╛ рдЯреЗрд╕реНрдЯ? (рдиреАрдЪреЗ рднреА рджреЗрдЦреЗрдВ)
рдореИрдВ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЕрдЧрд░ рд╡рд╣ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛
рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЙрдкрд╛рдп рд╣реИ рдпрджрд┐:
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдпрдЬрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?
рдирд╣реАрдВ, рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ {"", "some value"}
рдкреИрд░реЗрдВрдЯреА рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрджрд░реНрд╢ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдЕрдм рд╣рдо RFC 7159 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рд╣рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реВрдБред
рд╡реЗ рдХреЗрд╡рд▓ рдкрд╛рда рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ (рдХреБрдВрдЬреА рдХреЗ рдмрд┐рдирд╛):
рддреЛ рдЖрдЗрдП рд╣рдо рдЗрд╕реЗ рдпрд╛рд▓рдЬ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдпрд╣ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!