gpt4 book ai didi

c# - 使用 ASP.NET Core 反序列化 appsettings.json

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:23 24 4
gpt4 key购买 nike

我正在我的 ASP.NET 应用程序中对我的 appsettings.json 文件进行加密/解密。

解密后,我的文件被正确解密为如下字符串:

{
"ConnectionStrings": {
"IdentityServer4": "server=(localdb)\\mssqllocaldb;database=IdentityServer4.Quickstart.EntityFramework;trusted_connection=yes"
}
}

我现在想将该结果转换为一个对象,我尝试使用以下代码行来做到这一点:

dynamic result = JsonConvert.DeserializeObject(jsonString);

当该行执行时,我收到以下错误:

"Unexpected character encountered while parsing value: . Path '', line 0, position 0."

最佳答案

似乎有一个Byte Order Mark在字符串的开头。

要剥离 BOM,请参阅 this question 的答案.

但是,最好不要将其包含在开头的字符串中。如果您有一个包含 BOM 的字节数组,请执行以下操作:

var jsonString = Encoding.UTF8.GetString(byteArray);

然后将包含 BOM。但是,如果您使用 StreamReader 读取二进制数据,那么 BOM 将被处理并删除:

var jsonString = new StreamReader(new MemoryStream(byteArray)).ReadToEnd();

(如果您愿意,可以向其中添加 using 语句,尽管实际上不需要处理 MemoryStream。)

或者,按照 this answer 的方式同时进行流式传输、解密和反序列化(对于 XML)和 this one (用于同时解压和反序列化 JSON)。

关于c# - 使用 ASP.NET Core 反序列化 appsettings.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44420551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com