public static FeatureWithID ReadFeatureWithID(JsonTextReader jreader) { if (jreader == null) { throw new ArgumentNullException("jreader", "A valid JSON reader object is required."); } FeatureWithID feature = new FeatureWithID(); if (jreader.MoveToContent() && jreader.TokenClass == JsonTokenClass.Object) { jreader.ReadToken(JsonTokenClass.Object); string key = ""; JsonTokenClass tokenClass; while ((tokenClass = jreader.TokenClass) == JsonTokenClass.Member) { key = jreader.ReadMember(); switch (key) { case "type": if (!jreader.ReadString().Equals("Feature")) { throw new Exception("jreader - A valid JSON reader object is required."); } break; case "id": feature.Id = jreader.ReadString(); break; case "geometry": feature.Geometry = Read(jreader); //reads the geometry value //jreader.ReadMember(); //reads 'properties' //feature.Attributes = ReadAttributesTableWithID(jreader); break; case "properties": feature.Attributes = ReadAttributesTableWithID(jreader); //jreader.ReadMember(); //reads 'geometry' //feature.Geometry = Read(jreader); //reads the geometry value break; default: throw new Exception("jreader - Feature - unexpected member"); break; } } //if (tokenClass != JsonTokenClass.EndObject) //{ // throw new Exception("expected endobject"); //} jreader.ReadToken(JsonTokenClass.EndObject); } return(feature); }
public static void WriteWithID(FeatureWithID feature, JsonTextWriter jwriter) { if (feature == null) { return; } if (jwriter == null) { throw new ArgumentNullException("jwriter", "A valid JSON writer object is required."); } jwriter.WriteStartObject(); jwriter.WriteMember("type"); jwriter.WriteString("Feature"); jwriter.WriteMember("id"); jwriter.WriteString(feature.Id); jwriter.WriteMember("geometry"); Write(feature.Geometry, jwriter); jwriter.WriteMember("properties"); WritewithID(feature.Attributes, jwriter); jwriter.WriteEndObject(); }
public static void WriteFeatureWithID(FeatureWithID feature, TextWriter writer) { if (feature == null) { return; } if (writer == null) { throw new ArgumentNullException("writer", "A valid text writer object is required."); } JsonTextWriter jwriter = new JsonTextWriter(writer); WriteWithID(feature, jwriter); }
public override bool Equals(object obj) { FeatureWithID otherFeature = obj as FeatureWithID; if (otherFeature != null) { if (this.Id == otherFeature.Id && this.Geometry == otherFeature.Geometry) { return(true); } else { return(false); } } else { return(false); } //return base.Equals(obj); }