public void SerializeDeserializeWithEnumTest() { TestSensusServiceHelper service1 = new TestSensusServiceHelper(); SensusServiceHelper.Initialize(() => service1); ActivityDatum datum = new ActivityDatum(DateTimeOffset.UtcNow, Activities.OnBicycle, ActivityPhase.Starting, ActivityState.Inactive, 1); Protocol protocol = new Protocol("test"); AnonymizedJsonContractResolver anonymizer = new AnonymizedJsonContractResolver(protocol); string serializedJSON = datum.GetJSON(anonymizer, false); ActivityDatum deserializedDatum = Datum.FromJSON(serializedJSON) as ActivityDatum; Assert.AreEqual(datum.BuildId, deserializedDatum.BuildId); Assert.AreEqual(datum.DeviceId, deserializedDatum.DeviceId); Assert.AreEqual(datum.Id, deserializedDatum.Id); Assert.AreEqual(datum.ProtocolId, deserializedDatum.ProtocolId); Assert.AreEqual(datum.Timestamp, deserializedDatum.Timestamp); Assert.AreEqual(datum.Activity, deserializedDatum.Activity); Assert.AreEqual(datum.Confidence, deserializedDatum.Confidence); Assert.AreEqual(datum.ActivityStarting, deserializedDatum.ActivityStarting); Assert.AreEqual(datum.Phase, deserializedDatum.Phase); Assert.AreEqual(datum.State, deserializedDatum.State); }
/// <summary> /// For JSON deserialization /// </summary> private Protocol() { _running = false; _forceProtocolReportsToRemoteDataStore = false; _lockPasswordHash = ""; _jsonAnonymizer = new AnonymizedJsonContractResolver(this); _firstStartTimestamp = DateTimeOffset.MinValue; }
/// <summary> /// For JSON deserialization /// </summary> private Protocol() { _running = false; _forceProtocolReportsToRemoteDataStore = false; _lockPasswordHash = ""; _jsonAnonymizer = new AnonymizedJsonContractResolver(this); _shareable = false; _pointsOfInterest = new List <PointOfInterest>(); _participationHorizonDays = 1; _healthTestTimes = new List <DateTime>(); }
public string GetJSON(AnonymizedJsonContractResolver anonymizationContractResolver, bool indented) { JSON_SERIALIZER_SETTINGS.ContractResolver = anonymizationContractResolver; // datum objects can be anonymized by omitting values. this is accomplished by setting them to null. also, some fields in datum // objects might have unreliably obtained values (e.g., GPS location might fail and be null). if we ignore fields with null // values when serializing, the resulting JSON and other derived structures (e.g., data frames in R) will have differing columns. // so we should include null values to ensure that all JSON values are always included. JSON_SERIALIZER_SETTINGS.NullValueHandling = NullValueHandling.Include; string json = JsonConvert.SerializeObject(this, indented ? Formatting.Indented : Formatting.None, JSON_SERIALIZER_SETTINGS); // if the json should not be indented, replace all newlines with white space if (!indented) { json = json.Replace('\n', ' ').Replace('\r', ' '); } return(json.Trim()); }
public void SerializeDeserializeTest() { TestSensusServiceHelper service1 = new TestSensusServiceHelper(); SensusServiceHelper.Initialize(() => service1); LocationDatum datum = new LocationDatum(DateTimeOffset.UtcNow, 0.5, 75.5, -35.5); Protocol protocol = new Protocol("test"); AnonymizedJsonContractResolver anonymizer = new AnonymizedJsonContractResolver(protocol); string serializedJSON = datum.GetJSON(anonymizer, false); LocationDatum deserializedDatum = Datum.FromJSON(serializedJSON) as LocationDatum; Assert.AreEqual(datum.Accuracy, deserializedDatum.Accuracy); Assert.AreEqual(datum.BuildId, deserializedDatum.BuildId); Assert.AreEqual(datum.DeviceId, deserializedDatum.DeviceId); Assert.AreEqual(datum.Id, deserializedDatum.Id); Assert.AreEqual(datum.Latitude, deserializedDatum.Latitude); Assert.AreEqual(datum.Longitude, deserializedDatum.Longitude); Assert.AreEqual(datum.ProtocolId, deserializedDatum.ProtocolId); Assert.AreEqual(datum.Timestamp, deserializedDatum.Timestamp); }
public string GetJSON(AnonymizedJsonContractResolver anonymizationContractResolver) { _serializationSettings.ContractResolver = anonymizationContractResolver; return(JsonConvert.SerializeObject(this, Formatting.None, _serializationSettings).Replace('\n', ' ').Replace('\r', ' ')); }
public string GetJSON(AnonymizedJsonContractResolver anonymizationContractResolver) { JSON_SERIALIZER_SETTINGS.ContractResolver = anonymizationContractResolver; return(JsonConvert.SerializeObject(this, Formatting.None, JSON_SERIALIZER_SETTINGS).Replace('\n', ' ').Replace('\r', ' ')); }