private void DeserializeTable(SerializeTable table, XmlNode currentNode) { XmlNode child = currentNode.FirstChild; while (null != child) { if (child.NodeType == XmlNodeType.Element) { if (1 == child.ChildNodes.Count && child.FirstChild.NodeType == XmlNodeType.Text) { //string type = child.Attributes["type"].Value; table.AddValue <string>(child.Name, child.InnerText); } else { DeserializeTable(table.AddChild(child.Name), child); } } child = child.NextSibling; } }
private void DeserializeTable(SerializeTable table, LitJson.JsonReader reader) { string propertyName = string.Empty; while (reader.Read()) { switch (reader.Token) { case JsonToken.ObjectStart: if (table.Name == propertyName && table.IsRoot) { // nothing to do } else { DeserializeTable(table.AddChild(propertyName), reader); } //propertyName = string.Empty; break; case JsonToken.PropertyName: propertyName = (string)reader.Value; break; case JsonToken.ObjectEnd: return; case JsonToken.ArrayStart: // for arrary and list DeserializeTable(table.AddChild(propertyName), reader); break; case JsonToken.ArrayEnd: // for arrary and list return; case JsonToken.Int: //table.AddValue<int>(propertyName, (int)reader.Value); table.AddValue <string>(propertyName, reader.Value.ToString()); propertyName = string.Empty; break; case JsonToken.Long: //table.AddValue<int>(propertyName, (int)reader.Value); table.AddValue <string>(propertyName, reader.Value.ToString()); propertyName = string.Empty; break; // case JsonToken.Single: // //table.AddValue<float>(propertyName, (float)reader.Value); // table.AddValue<string>(propertyName, reader.Value.ToString()); // propertyName = string.Empty; // break; case JsonToken.Double: //table.AddValue<double>(propertyName, (double)reader.Value); table.AddValue <string>(propertyName, reader.Value.ToString()); propertyName = string.Empty; break; case JsonToken.String: //table.AddValue<string>(propertyName, (string)reader.Value); table.AddValue <string>(propertyName, reader.Value.ToString()); propertyName = string.Empty; break; case JsonToken.Boolean: //table.AddValue<bool>(propertyName, (bool)reader.Value); table.AddValue <string>(propertyName, reader.Value.ToString()); propertyName = string.Empty; break; case JsonToken.Null: break; } } }