Exemplo n.º 1
0
 public virtual object Import(ImportContext context, JsonReader reader)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (reader == null)
     {
         throw new ArgumentNullException("reader");
     }
     if (!reader.MoveToContent())
     {
         throw new JsonException("Unexpected EOF.");
     }
     if (reader.TokenClass == JsonTokenClass.Null)
     {
         return this.ImportNull(context, reader);
     }
     if (reader.TokenClass == JsonTokenClass.String)
     {
         return this.ImportFromString(context, reader);
     }
     if (reader.TokenClass == JsonTokenClass.Number)
     {
         return this.ImportFromNumber(context, reader);
     }
     if (reader.TokenClass == JsonTokenClass.Boolean)
     {
         return this.ImportFromBoolean(context, reader);
     }
     if (reader.TokenClass == JsonTokenClass.Array)
     {
         return this.ImportFromArray(context, reader);
     }
     if (reader.TokenClass != JsonTokenClass.Object)
     {
         throw new JsonException(string.Format("{0} not expected.", reader.TokenClass));
     }
     return this.ImportFromObject(context, reader);
 }
Exemplo n.º 2
0
 public virtual void WriteFromReader(JsonReader reader)
 {
     if (reader == null)
     {
         throw new ArgumentNullException("reader");
     }
     if (reader.MoveToContent())
     {
         if (reader.TokenClass == JsonTokenClass.String)
         {
             this.WriteString(reader.Text);
         }
         else if (reader.TokenClass == JsonTokenClass.Number)
         {
             this.WriteNumber(reader.Text);
         }
         else if (reader.TokenClass == JsonTokenClass.Boolean)
         {
             this.WriteBoolean(reader.Text == "true");
         }
         else if (reader.TokenClass == JsonTokenClass.Null)
         {
             this.WriteNull();
         }
         else if (reader.TokenClass == JsonTokenClass.Array)
         {
             this.WriteStartArray();
             reader.Read();
             while (reader.TokenClass != JsonTokenClass.EndArray)
             {
                 this.WriteFromReader(reader);
             }
             this.WriteEndArray();
         }
         else
         {
             if (reader.TokenClass != JsonTokenClass.Object)
             {
                 throw new JsonException(string.Format("{0} not expected.", reader.TokenClass));
             }
             reader.Read();
             this.WriteStartObject();
             while (reader.TokenClass != JsonTokenClass.EndObject)
             {
                 this.WriteMember(reader.ReadMember());
                 this.WriteFromReader(reader);
             }
             this.WriteEndObject();
         }
         reader.Read();
     }
 }