Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
                }
            }
        }