I have a problem with saving and loading data. The problem is when I print my table using 
inspect lib Im getting this:
| { { {
      result = 1
    }, {
      result = 1
    } }, { { 3.0525409300258, -7.1188186867317,
      bias = -8.3549980727365e-005,
      delta = -0.00027849993575788,
      result = 0.016855024522915
    }, { 2.4140298299185, -0.60132939530735,
      bias = 0.00033360795785989,
      delta = 0.0011120265261996,
      result = 0.85955375972833
    }, { -5.7339817836074, -5.5835565614512,
      bias = 1.2580778860342e-007,
      delta = 4.1935929534474e-007,
      result = 1.2157334382094e-005
    }, { -7.021765927752, 2.6025379863218,
      bias = -4.3028971089474e-005,
      delta = -0.00014342990363158,
      result = 0.011903162333153
    } }, { { 6.5062302538448, -3.5666890973304, -13.35381471873, 4.7209472334399,
      bias = -0.00077494182403473,
      delta = -0.0025831394134491,
      result = 0.052205570616817
} } } | 
It looks absolutely OK. Then I use json to encode this table to a string like that:
local str = json.encode(data)
And Im getting this:
| [[{"result":1},{"result":1}],[{"1":3.0525409300258,"2":-7.1188186867317,"bias":-8.3549980727365e-005,"result":0.016855024522915,"delta":-0.00027849993575788},{"1":2.4140298299185,"2":-0.60132939530735,"bias":0.00033360795785989,"result":0.85955375972833,"delta":0.0011120265261996},{"1":-5.7339817836074,"2":-5.5835565614512,"bias":1.2580778860342e-007,"result":1.2157334382094e-005,"delta":4.1935929534474e-007},{"1":-7.021765927752,"2":2.6025379863218,"bias":-4.3028971089474e-005,"result":0.011903162333153,"delta":-0.00014342990363158}],[{"1":6.5062302538448,"2":-3.5666890973304,"3":-13.35381471873,"4":4.7209472334399,"bias":-0.00077494182403473,"result":0.052205570616817,"delta":-0.0025831394134491}]] | 
Looks OK again.
The fun part is when I load data from string using
| local tmp = json.decode(myStrData) | 
and print tmp table with inspect, Im getting this:
| { { {
      result = 1
    }, {
      result = 1
    } }, { {
      ["1"] = -6.7174306784856,
      ["2"] = 3.2358287613015,
      bias = -7.191155644351e-005,
      delta = -0.00023970518814503,
      result = 0.02984773214605
    }, {
      ["1"] = -1.1534704652545,
      ["2"] = 2.8737936954513,
      bias = 0.00018268117948989,
      delta = 0.00060893726496631,
      result = 0.84811175708117
    }, {
      ["1"] = 2.6744957060553,
      ["2"] = -5.9305356187969,
      bias = -5.5072801877998e-005,
      delta = -0.00018357600625999,
      result = 0.037114576551705
    }, {
      ["1"] = -5.4239175469685,
      ["2"] = -5.5179995861126,
      bias = 8.1621380532062e-008,
      delta = 2.7207126844021e-007,
      result = 1.7699783810485e-005
    } }, { {
      ["1"] = 7.8235855177385,
      ["2"] = -4.4678815169207,
      ["3"] = 4.8548510429201,
      ["4"] = -14.527891065454,
      bias = -0.00031742496963396,
      delta = -0.0010580832321132,
      result = 0.033079933620093
} } } | 
As you can see 
number keys became 
string keys. What can I do about it?                
Comments
Fragmenter - animated loop machine and IKONOMIKON - the memory game
Gotchas / Warnings
This method is not appropriate for saving/restoring tables. It is meant to be used by the programmer mainly while debugging a program.
So this works OK:
--[[ inspected: { 2, 4, 6, key = "value" } encoded {"1":2,"2":4,"3":6,"key":"value"} decoding... inspected: { ["1"] = 2, ["2"] = 4, ["3"] = 6, key = "value" } ]]Likes: MoKaLux