рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрд░реЛрдирд╛ рдПрд╕рдбреАрдХреЗ рдкрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╕рдВрдЧрддрд┐ рдорд┐рд▓реА, рдЬреЛ рдЕрднреНрдпрд╛рд╕ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рд╕рдм рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
1. рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ Lua рд╕рд░рдгреА рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
ar = {23,45,56,'weer'}
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рднрд╛рд╖рд╛ рдХреА рд╕рдордЭ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рддреЛ рдпрд╣ рд╕рд╛рд░рдгреА рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрдо рд╡рд╕рд╛ рд╡рд╛рд▓рд╛ рд╣реИ - SO POSSIBLE:
ar = {[1] = 23,[2] = 45,[3] = 56,[4] = 'weer'}
рдпрджрд┐ рдЖрдк рдЗрд╕ рдПрд░реЗ рдХреЛ рдЬреЛрдВрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЧрд╛ (рдмреЗрд╢рдХ, рд╣рдо рдЬрд╕рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓реЗрдВрдЧреЗ):
ar = {[1] = 23,[2] = 45,[3] = 56,[4] = 'weer'} json = require "json" local str = json.encode(ar) print(str)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░рд▓реАрдХреГрдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ json рдХреЛ рднреА рдкрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдЧрд░ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд┐рдиреЗ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдпрд╣ рдЕрджреНрднреБрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдХреНрд╕рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдХрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ рдХреНрдпрд╛
рдЕрдм рдЪрд▓рд┐рдП рдирд╛рд▓реЗ рдХреЛ рдПрдХ Lua рдЯреЗрдмрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ:
local str = '[23,45,56,"weer"]' local ar2 = json.decode(str) for k,v in pairs(ar2)do print(k,type(k),v) end
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЗрдирдкреБрдЯ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рддрд╛рд▓рд┐рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ ar2 рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЕрдм, рдкрд┐рдЫрд▓реЗ 2 рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╕рд░рдгреА рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдмрд╛рдзрд┐рдд рдЕрдиреБрдХреНрд░рдо рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдорд╛рди 'wtf' рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА 6 (5 рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ) рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдо рдЯреВрдЯ рд░рд╣реЗ рд╣реИрдВред
json = require "json" ar = {23,45,56,'weer',[6] = 'wtf'} local str = json.encode(ar) print(str)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдорд╣рд╛рди рдирд┐рдХрд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ json.encode рдиреЗ рдЗрд╕ рдХреИрдЪ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереА рдФрд░ рдПрдХ рдЧреИрд░-рдореМрдЬреВрдж 5 рдХреБрдВрдЬреА рдбрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрд╢рдХреНрдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рд╕рдм рд╕рдлрд▓рддрд╛ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рд╣рдо рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд░реБрдХреЗрдВрдЧреЗ рдФрд░ 1 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ 777 рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ 770 рдирд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ - рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЧрд╣ рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реВрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкреВрд░реНрдг рдЕрдиреБрд░реВрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдВрд╕ рдореЗрдВ рдХреЛрдИ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдВрдЬреА рдЬрд╕рди рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ vlenред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред
json = require "json" ar = {23,45,56,'weer',[6] = 'wtf',[777] = 1} local str = json.encode(ar) print(str)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдирдХреЛрдбрд░ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЧрдпрд╛ рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддреА рд╣реИ (рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ), рдпрд╛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реНрдкрд╖реНрдЯ рдЯрди рднрд╛рд░ / рдЪрд╛рд▓рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╕рд╛рдЦреА, рдпрд╣ рдмрд╣реБрдд рдЦреБрд╢реА рдирд╣реАрдВ рд▓рд╛рдПрдЧрд╛ред рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
2. рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ, рдлрд┐рд░ рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рд░ рдЬрдЧрд╣ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд▓рд╛рди рдмреА рд╣реИ Json.decode рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рднреА рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдкрд╛рд░рд┐рдд рд╕рд░рдгреА рдореЗрдВ рдкрд╣рд▓реЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдФрд░ рдЧрд╣рд░реА рд╕рдВрд▓рдЧреНрдирдХ рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рдо json рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрдВрдХреНрд╢рди рд╡реИрд▓реНрдпреВ рдХрд╛ рд░рд┐рдбрд┐рдлрд╛рдЗрдирдореЗрдВрдЯ рдХрд░реЗрдВрдЧреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрдкрд▓рдмреНрдз рд╣реИ:
json = require "json" local jd = json.decode
рдЕрдм рдкрд┐рдЫрд▓реЗ рдСрдкрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:
ar = {23,45,56,'weer',[6] = 'wtf',[777] = 1} local str = json.encode(ar) print(str)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рд╕рд░рдгреА рдиреЗ рдЕрдкрдиреА рдкреВрд░реНрд╡ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдирдпрд╛ json.decode рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдПрдХ рджреВрд╕рд░реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдЧрд╛ред
рд╕рдмрдХреЛ рдмрд╛рдп!