Microsoft.Azure.Core.NewtonsoftJson 2.0.0
前缀已保留
dotnet add package Microsoft.Azure.Core.NewtonsoftJson --version 2.0.0
NuGet\Install-Package Microsoft.Azure.Core.NewtonsoftJson -Version 2.0.0
<PackageReference Include="Microsoft.Azure.Core.NewtonsoftJson" Version="2.0.0" />
paket add Microsoft.Azure.Core.NewtonsoftJson --version 2.0.0
#r "nuget: Microsoft.Azure.Core.NewtonsoftJson, 2.0.0"
// Install Microsoft.Azure.Core.NewtonsoftJson as a Cake Addin #addin nuget:?package=Microsoft.Azure.Core.NewtonsoftJson&version=2.0.0 // Install Microsoft.Azure.Core.NewtonsoftJson as a Cake Tool #tool nuget:?package=Microsoft.Azure.Core.NewtonsoftJson&version=2.0.0
Newtonsoft.Json 支持针对 .NET 的 Azure Core 共享客户端库
Azure.Core 包 包含由最新 Azure SDK 客户端库共享的类型。此 Newtonsoft.Json
兼容库
- 包含依赖 Newtonsoft.Json 包的转换器。
- 启用使用
Newtonsoft.Json
对自定义模型类型进行序列化和反序列化。这些自定义模型类型可用于以下客户端库
入门指南
安装包
使用 .NET CLI 从 NuGet 安装此包
dotnet add package Microsoft.Azure.Core.NewtonsoftJson
关键概念
本支持包包含 NewtonsoftJsonObjectSerializer
类,可以将该类传递给一些 Azure SDKs 的客户端选项类,如下面的示例所示。
如果您未传递自己的 JsonSerializerSettings
,以下转换器将自动添加到 NewtonsoftJsonObjectSerializer
中。
NewtonsoftJsonETagConverter
用于转换Azure.ETag
属性。
请参阅下面的示例 使用默认转换器,以获得具有此默认列表的 JsonSerializerSettings
实例,然后您可以按需修改。
示例
以下示例使用了 Azure.Search.Documents 包 来演示如何反序列化搜索结果。有关更多信息和使用 Azure.Search.Documents 的示例,请参阅其 README。
反序列化模型
考虑一个包含关于电影信息的自定义模型类。
public class Movie
{
[JsonProperty("uuid")]
public string Id { get; private set; } = Guid.NewGuid().ToString();
public string Title { get; set; }
public string Description { get; set; }
public float Rating { get; set; }
}
我们的 Azure Cognitive Search 索引使用 camelCase 字段定义,而 Id
字段实际上定义为 "uuid";但是,我们可以设置 JsonSerializerSettings.ContractResolver
属性,如下所示,以提供一个符合习惯的模型,而无需为所有属性添加属性
// 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
{
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");
}
在搜索大量电影索引时,可能会打印以下内容
The Lord of the Rings: The Return of the King
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
使用默认转换器
如果您使用默认构造函数实例化 NewtonsoftJsonObjectSerializer
,则会自动添加像上面在 关键概念 中列出的常见 Azure SDKs 转换器。要修改这些默认设置,您可以根据以下示例创建一个新的 JsonSerializerSettings
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)
};
您可以添加或删除转换器,设置 ContractResolver
或 JsonSerializerSettings
的其他任何成员。
贡献
本项目欢迎贡献和建议。大多数贡献都需要您同意一份贡献许可协议 (CLA),申明您有权并且确实授予我们使用您的贡献的权利。有关详细信息,请访问 https://cla.microsoft.com。
当您提交拉取请求时,一个 CLA-bot 将自动确定您是否需要提供 CLA,并相应地装饰 PR(例如,标记、注释)。只需遵循 bot 提供的说明。您只需在每个使用我们的 CLA 的仓库中做一次。
本项目采用了 Microsoft 开放源代码行为准则。有关更多信息,请参阅 行为准则常见问题解答 或通过 [email protected] 联系我们,有任何额外的问题或评论。
产品 | 版本 兼容和附加的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 兼容。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Azure.Core (>= 1.36.0)
- Newtonsoft.Json (>= 13.0.1)
NuGet 包 (5)
显示依赖 Microsoft.Azure.Core.NewtonsoftJson 的前 5 个 NuGet 包
包 | 下载 |
---|---|
Microsoft.Azure.SignalR.Management 通过 Azure SignalR 服务直接提供与 ASP.NET Core SignalR 客户端通信的能力。功能包括向所有/客户端/用户/组发送消息和管理组成员资格。更多信息请参阅https://github.com/Azure/azure-signalr/blob/dev/docs/management-sdk-guide.md |
|
Microsoft.Azure.Functions.Worker.Extensions.OpenApi 此包通过进程外工作进程帮助渲染 Azure Functions 端点的 OpenAPI 文档和 Swagger UI。 |
|
Dan.Common
本包包含用于在 Dan.Core 与各种 Dan 插件之间通信,以及简化插件开发的常用模型和实用工具。 |
|
FakeHttpRequestData
一个包含HttpRequestData假实现(用于单元测试)的库。 |
|
lgp1985.Azure.Functions.Worker.Extensions.OpenApi
此包通过进程外工作进程帮助渲染 Azure Functions 端点的 OpenAPI 文档和 Swagger UI。 |
GitHub 仓库 (4)
显示依赖 Microsoft.Azure.Core.NewtonsoftJson 的前 4 个最受欢迎的 GitHub 仓库。
仓库 | 星标 |
---|---|
Azure/azure-sdk-for-net
该仓库用于 .NET Azure SDK 的积极开发。对于 SDK 的消费者,我们建议访问我们的公共开发者文档 https://learn.microsoft.com/dotnet/azure/ ,或我们的版本化开发者文档 https://azure.github.io/azure-sdk-for-net/。
|
|
Azure/azure-signalr
.NET Azure SignalR 服务 SDK
|
|
Azure/azure-functions-dotnet-worker
Azure Functions 进程外 .NET 语言工作进程
|
|
Azure/azure-functions-openapi-extension
此扩展为 Azure Functions 应用提供了 Open API 功能,以更好地供消费者发现。
|
版本 | 下载 | 最后更新 |
---|---|---|
2.0.0 | 444,133 | 12/14/2023 |
1.0.0 | 8,657,122 | 1/8/2021 |
1.0.0-preview.1 | 1,868 | 8/7/2020 |