小编Had*_*zad的帖子

C# 迭代 JSON 对象

我正在尝试使用 .Net Json 反序列化器System.Text.Json来迭代以下 Json 输入。

如果“person_id”是 json 结构中的顶层(见下文),我找到了按“person_id”进行迭代的方法,但我无法找到循环遍历所有下一级项目的方法。

我认为 NewtonSoftJArrayJObject非常接近我所需要的(我可能会追求这一点),但不确定微软的解决方案是否有办法做到这一点......

System.Text.Json微软的库可以做到这一点吗?

{
  "0": {
    "person_id": "0",
    "last_name": "Greg",
    "first_name": "Craig",
  },
  "1": {
    "person_id": "1",
    "last_name": "Doe",
    "first_name": "John",
  }
}
Run Code Online (Sandbox Code Playgroud)

JsonElement通过属性名称提取对象的解决方案(即我可以通过这种方式获取 John Doe 的信息)。

using (JsonDocument document = JsonDocument.Parse(jsonString))
{
    JsonElement root = document.RootElement;

    JsonElement studentsElement = root.GetProperty("1");
}
Run Code Online (Sandbox Code Playgroud)

c# json .net-core

5
推荐指数
1
解决办法
2万
查看次数

在.Net Core razor页面中传递路由参数

我想将参数传递给OnGet()方法,但它不稳定并且每次都不一样,例如:

test.com/book
test.com/book/page/word
test.com/book/page
test.com/book/page/word/...
Run Code Online (Sandbox Code Playgroud)

参数不稳定,是动态创建的。

我该如何处理这个问题?

mvvm asp.net-core razor-pages

2
推荐指数
1
解决办法
4659
查看次数

如何禁用 JWT 令牌

我想在用户从应用程序注销时禁用生成的 JWT 令牌,这需要在后端代码中完成。如何使用身份验证服务器 (SpringBoot) 禁用 JSON Web 令牌 (JWT)

security spring oauth-2.0 jwt

2
推荐指数
1
解决办法
5392
查看次数

使用 ASP.NET Core 同时运行 REST API 和 gRPC

我正在尝试在特定端口(如 5000)上使用 ASP.NET Core 6 并行 REST API 运行 gRPC 服务器和客户端。我的意思是,我想使用 localhost:5000,但在检查了 的dotnetgRPC 模板之后,我发现Http2应该为 Kestrel 端点设置协议,appsettings.json如下所示:

{
  "urls": "http://localhost:5000",
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http2"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

通过这样做,我遇到了一个问题,我的 REST API 不再工作,我猜这是因为Http2提供给 Kestrel 端点的协议,因为当我删除提供的协议 API 时,它可以正常工作;相反,gRPC 客户端无法工作。有什么办法可以并行运行两个端点吗?

asp.net appsettings asp.net-web-api grpc grpc-dotnet

2
推荐指数
1
解决办法
1859
查看次数

如果在例程中多次访问对象的属性,创建变量是最佳实践吗?

当我刚开始作为初级 C# 开发人员时,我总是在代码审查期间被告知,如果我在给定范围内多次访问对象的属性,那么我应该在例程中创建一个局部变量,因为它比必须检索更便宜它来自对象。我从来没有真正质疑过它,因为它来自更多我当时认为知识渊博的人。

下面是一个基本的例子

示例 1:将对象标识符存储在局部变量中

public void DoWork(MyDataType object) 
{
    long id = object.Id;

    if (ObjectLookup.TryAdd(id, object))
    {
        DoSomeOtherWork(id);
    }

}
Run Code Online (Sandbox Code Playgroud)

示例 2:在需要时从对象属性的 Id 属性中检索标识符

public void DoWork(MyDataType object) 
{
    if (ObjectLookup.TryAdd(object.Id, object))
    {
        DoSomeOtherWork(object.Id);
    }   
}

Run Code Online (Sandbox Code Playgroud)

它真的很重要还是更喜欢我工作的编码风格?或者也许是开发人员做出的情境设计时选择?

.net c#

1
推荐指数
2
解决办法
201
查看次数