Write/Serialize C# class object to JSON object
// Write/Serialize C# class object to JSON object
// API's used:
// * System.Runtime.Serialization - .NET 4.5 Serialization
// * JsonPrettyPrinterPlus
private static void SaveMeasureResultsFile( Category3MeasureModel results, string measureBaseDirPath, DirectoryInfo measureDataDir, string measureDataDirSuffix)
{
var resultsSerializer = new DataContractJsonSerializer(typeof (Category3MeasureModel));
// FileStream stream = File.OpenWrite((String.Format("{0}results.json", downloadDirectory)));
var stream = new MemoryStream();
resultsSerializer.WriteObject(stream, results);
string resultString = Encoding.Default.GetString(stream.ToArray());
stream.Close();
stream.Dispose();
var resultsFile = new StreamWriter(String .Format(" {0}results.json", measureDataDir.FullName));
var beautifiedJson = BeautifyJson(resultString);
resultsFile.Write(beautifiedJson);
resultsFile.Flush();
resultsFile.Close();
AddFileToUnitTestProject(measureDataDirSuffix + @"results.json", measureBaseDirPath, measureDataDir.FullName);
}
private static string BeautifyJson( string json)
{
var jPrinter = new JsonPrettyPrinter(new JsonPPStrategyContext ());
var output = jPrinter.PrettyPrint(json);
return output;
}
serialize array of objects:
private static Person[] CreateMeasureModelFromJsonParams(string jsonParams)
{
var serializer = new DataContractJsonSerializer(typeof(Person[]));
var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonParams));
var measuresModel = serializer.ReadObject(stream);
Console.WriteLine(measuresModel);
stream.Close();
return (Person[])measuresModel;
}
}
[DataContract]
class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}