public void SearchSample() { // cspell:word Aragorn Sauron's MockResponse response = new MockResponse(200); response.SetContent(@"{ ""value"": [ { ""@search.score"": 1.0, ""uuid"": ""efe8857f-1d74-41e2-9ff1-4943a9ad69d5"", ""title"": ""The Lord of the Rings: The Return of the King"", ""description"": ""Gandalf and Aragorn lead the World of Men against Sauron's army to draw his gaze from Frodo and Sam as they approach Mount Doom with the One Ring."", ""rating"": 9.1 } ] }"); Environment.SetEnvironmentVariable("SEARCH_ENDPOINT", "https://sample.search.windows.net"); Environment.SetEnvironmentVariable("SEARCH_API_KEY", "sample"); #region Snippet:Microsoft_Azure_Core_NewtonsoftJson_Samples_Readme_SearchSample // Get the Azure Cognitive Search endpoint and read-only API key. Uri endpoint = new Uri(Environment.GetEnvironmentVariable("SEARCH_ENDPOINT")); AzureKeyCredential credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("SEARCH_API_KEY")); // Create serializer options with default converters for Azure SDKs. JsonSerializerSettings serializerSettings = NewtonsoftJsonObjectSerializer.CreateJsonSerializerSettings(); // Serialize property names using camelCase by default. serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); SearchClientOptions clientOptions = new SearchClientOptions { #if !SNIPPET Transport = new MockTransport(response), #endif Serializer = new NewtonsoftJsonObjectSerializer(serializerSettings) }; SearchClient client = new SearchClient(endpoint, "movies", credential, clientOptions); Response <SearchResults <Movie> > results = client.Search <Movie>("Return of the King"); foreach (SearchResult <Movie> result in results.Value.GetResults()) { Movie movie = result.Document; Console.WriteLine(movie.Title); Console.WriteLine(movie.Description); Console.WriteLine($"Rating: {movie.Rating}\n"); } #endregion Snippet:Microsoft_Azure_Core_NewtonsoftJson_Samples_Readme_SearchSample Movie _movie = results.Value.GetResults().Single().Document; Assert.AreEqual("efe8857f-1d74-41e2-9ff1-4943a9ad69d5", _movie.Id); Assert.AreEqual("The Lord of the Rings: The Return of the King", _movie.Title); Assert.AreEqual("Gandalf and Aragorn lead the World of Men against Sauron's army to draw his gaze from Frodo and Sam as they approach Mount Doom with the One Ring.", _movie.Description); Assert.AreEqual(9.1, _movie.Rating, 0.01); }
/// <summary> /// The functions worker uses the Azure SDK's ObjectSerializer to abstract away all JSON serialization. This allows you to /// swap out the default System.Text.Json implementation for the Newtonsoft.Json implementation. /// To do so, add the Microsoft.Azure.Core.NewtonsoftJson nuget package and then update the WorkerOptions.Serializer property. /// This method updates the Serializer to use Newtonsoft.Json. Call /api/HttpFunction to see the changes. /// </summary> public static IFunctionsWorkerApplicationBuilder UseNewtonsoftJson(this IFunctionsWorkerApplicationBuilder builder) { builder.Services.Configure <WorkerOptions>(workerOptions => { var settings = NewtonsoftJsonObjectSerializer.CreateJsonSerializerSettings(); settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); settings.NullValueHandling = NullValueHandling.Ignore; workerOptions.Serializer = new NewtonsoftJsonObjectSerializer(settings); }); return(builder); }
public void DefaultSerializerSettings() { #region Snippet:Microsoft_Azure_Core_NewtonsoftJson_Samples_Readme_DefaultSerializerSettings JsonSerializerSettings serializerSettings = NewtonsoftJsonObjectSerializer.CreateJsonSerializerSettings(); // Serialize property names using camelCase by default. serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); // Add converters as needed, for example, to convert movie genres to an enum. serializerSettings.Converters.Add(new StringEnumConverter()); SearchClientOptions clientOptions = new SearchClientOptions { Serializer = new NewtonsoftJsonObjectSerializer(serializerSettings) }; #endregion Snippet:Microsoft_Azure_Core_NewtonsoftJson_Samples_Readme_DefaultSerializerSettings Assert.AreEqual(2, serializerSettings.Converters.Count); Assert.That(serializerSettings.Converters, Has.Some.TypeOf(typeof(NewtonsoftJsonETagConverter))); Assert.That(serializerSettings.Converters, Has.Some.TypeOf(typeof(StringEnumConverter))); }