public void WriteJson(SimpleJson.Writer writer) { writer.WriteObjectStart(); // callstack writer.WritePropertyStart("callstack"); writer.WriteArrayStart(); foreach (CallStack.Element el in callstack) { writer.WriteObjectStart(); if (!el.currentPointer.isNull) { writer.WriteProperty("cPath", el.currentPointer.container.path.componentsString); writer.WriteProperty("idx", el.currentPointer.index); } writer.WriteProperty("exp", el.inExpressionEvaluation); writer.WriteProperty("type", (int)el.type); if (el.temporaryVariables.Count > 0) { writer.WritePropertyStart("temp"); Json.WriteDictionaryRuntimeObjs(writer, el.temporaryVariables); writer.WritePropertyEnd(); } writer.WriteObjectEnd(); } writer.WriteArrayEnd(); writer.WritePropertyEnd(); // threadIndex writer.WriteProperty("threadIndex", threadIndex); if (!previousPointer.isNull) { writer.WriteProperty("previousContentObject", previousPointer.Resolve().path.ToString()); } writer.WriteObjectEnd(); }
public object WriteJson() { var dict = new Dictionary <string, object>(); dict["threadIndex"] = threadIndex; if (!previousPointer.isNull) { dict["previousContentObject"] = previousPointer.Resolve().path.ToString(); } var elements = new List <object>(); foreach (CallStack.Element el in callstack) { var item = new Dictionary <string, object>(); if (!el.currentPointer.isNull) { item["cPath"] = el.currentPointer.container.path.componentsString; item["idx"] = el.currentPointer.index; } item["exp"] = el.inExpressionEvaluation; item["type"] = (int)el.type; if (el.temporaryVariables.Count > 0) { item["temp"] = Json.WriteDictionaryRuntimeObjs(el.temporaryVariables); } elements.Add(item); } dict["callstack"] = elements; return(dict); }