private OSD JsonBuildRestOfSpec(LSL_List specifiers, int i, LSL_String val)
{
object spec = i >= specifiers.Data.Length ? null : specifiers.Data[i];
// 20131224 not used object specNext = i+1 >= specifiers.Data.Length ? null : specifiers.Data[i+1];
if (spec == null)
return OSD.FromString(val);
if (spec is LSL_Integer ||
(spec is LSL_String && ((LSL_String)spec) == ScriptBaseClass.JSON_APPEND))
{
OSDArray array = new OSDArray();
array.Add(JsonBuildRestOfSpec(specifiers, i + 1, val));
return array;
}
else if (spec is LSL_String)
{
OSDMap map = new OSDMap();
map.Add((LSL_String)spec, JsonBuildRestOfSpec(specifiers, i + 1, val));
return map;
}
return new OSD();
}