private OSD JsonGetSpecific(OSD o, LSL_List specifiers, int i)
{
object spec = specifiers.Data[i];
OSD nextVal = null;
if (o is OSDArray)
{
if (spec is LSL_Integer)
nextVal = ((OSDArray)o)[((LSL_Integer)spec).value];
}
if (o is OSDMap)
{
if (spec is LSL_String)
nextVal = ((OSDMap)o)[((LSL_String)spec).m_string];
}
if (nextVal != null)
{
if (specifiers.Data.Length - 1 > i)
return JsonGetSpecific(nextVal, specifiers, i + 1);
}
return nextVal;
}