public JMbr(JArr v, string name = null) { this.name = name; type = JType.Array; refv = v; numv = default; }
public bool Get(string name, ref JArr v) { if (TryGetValue(name, out var mbr)) { v = mbr; return(true); } return(false); }
public bool Get(string name, ref string[] v) { if (TryGetValue(name, out var mbr)) { JArr ja = mbr; if (ja != null) { v = new string[ja.Count]; for (int i = 0; i < ja.Count; i++) { v[i] = ja[i]; } } return(true); } return(false); }
public void Put(string name, JArr v) { if (counts[level]++ > 0) { Add(','); } if (name != null) { Add('"'); Add(name); Add('"'); Add(':'); } if (v == null) { Add("null"); } else { counts[++level] = 0; // enter Add('['); bool bgn = false; while (v.Next()) { counts[++level] = 0; // enter an data entry if (bgn) { Add(','); } Add('{'); v.Write(this); Add('}'); level--; bgn = true; } Add(']'); level--; // exit } }
public bool Get <D>(string name, ref D[] v, byte proj = 0x0f) where D : IData, new() { if (TryGetValue(name, out var mbr)) { JArr ja = mbr; if (ja != null) { v = new D[ja.Count]; for (int i = 0; i < ja.Count; i++) { JObj jo = ja[i]; D dat = new D(); dat.Read(jo); v[i] = dat; } } return(true); } return(false); }
public void Put(string name, JArr v) { }
public bool Get(string name, ref JArr v) { throw new NotImplementedException(); }
public void Add(JArr elem) { Add(new JMbr(elem)); }
public void Add(string name, JArr v) { Add <JMbr>(new JMbr(v, name)); }
public bool Get(string name, ref JArr v) { return(false); }
public void Put(string name, JArr v) { throw new NotImplementedException(); }
public static D[] StringToArray <D>(string v, byte proj = 0x0f) where D : IData, new() { JArr ja = (JArr) new JsonParser(v).Parse(); return(ja.ToArray <D>(proj)); }