值后的“r”无效。应为“,”、“}”或“]”

Ali*_*ghi 3 c# json deserialization json-deserialization .net-core

我正在尝试使用以下结构将字符串反序列化为类:

  // this is my json
    {
      "MethodName":"PRC_SET_COMMISSION_STATIC",
      "Input":"{"reqType":"U","sapId":17000100,"offerType":5,"commissionRate":4,"accountNo":null,"fromDate":"2022-05-29T00:00:00","toDate":"2029-05-29T00:00:00","userId":"13601360"}"}
Run Code Online (Sandbox Code Playgroud)

这是我想要获得以下值的课程:

public class ProcessRequestRequestModelCl :AuthenticationModelCl
    {
        public string MethodName { get; set; }
        public string Input { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

所以我为实现这一目标所做的事情是这样的:

ProcessRequestRequestModelCl RequestModel = System.Text.Json.JsonSerializer.Deserialize<ProcessRequestRequestModelCl>(ParameterStr);
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:“r”在值后无效。预计 ','、'}' 或 ']' 问题与 有关"Input":"{"reqType":"U","sapId":17000100,"offerType":5,"commissionRate":4,"accountNo":null,"fromDate":"2022-05-29T00:00:00","toDate":"2029-05-29T00:00:00","userId":"13601360"}"。我想知道如何将 json 作为字符串传递给输入值。

The*_*nic 5

如果您确实需要将内部 json 作为字符串,则需要像这样转义引号:

{
    "MethodName":"PRC_SET_COMMISSION_STATIC",
    "Input": "{\"reqType\":\"U\",\"sapId\":17000100,\"offerType\":5,\"commissionRate\":4,\"accountNo\":null,\"fromDate\":\"2022-05-29T00:00:00\",\"toDate\":\"2029-05-29T00:00:00\",\"userId\":\"13601360\"}"
}
Run Code Online (Sandbox Code Playgroud)