JSON 没有反序列化
JSON is not deserializing
这里出了点问题,我想不通。
我正在 POST 调试 Visual Studio 2019/c# 中的 Azure 函数。 POST 看起来像这样:
在调试中,requestBody 从流中获取并放入字符串中。我正在将 JSON 反序列化为一个对象(我也尝试过动态),但未填充该对象。事实上,对象“数据”甚至似乎并不存在。查看我在断点处的图像,值“数据”甚至不存在:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = String.Empty;
using (StreamReader streamReader = new StreamReader(req.Body))
{
requestBody = await streamReader.ReadToEndAsync();
}
var data = JsonConvert.DeserializeObject<AppInfo>(requestBody);
string responseMessage = string.IsNullOrEmpty(data.UserGuid) ? "User not logged" : "User logged";
return new OkObjectResult(responseMessage);
}
public class AppInfo
{
public string AppName = "";
public string UserGuid = "";
}
我使用下面的代码可以获得 Json 反序列化对象。请查看下方
我尝试使用 dynamic 和 Var 数据类型来存储 json 反序列化对象
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var data = JsonConvert.DeserializeObject<AppInfo>(requestBody as string);
var val = JsonConvert.SerializeObject(data);
string responseMessage = string.IsNullOrEmpty(data.UserGuid) ? "User not logged" : "User logged";
return new OkObjectResult(responseMessage);
}
public class AppInfo
{
public string AppName = "";
public string UserGuid = "";
}
这不是代码问题,而是 Visual Studio 的问题。
这是一个更大项目的一部分。另一个我打算发布的项目,但决定添加一些额外的功能。我已将构建更改为“发布”,然后添加了此代码。在我将构建类型设置为“调试”之前,它无法 运行 正确地执行此代码 - 然后代码开始正常工作。
这里出了点问题,我想不通。 我正在 POST 调试 Visual Studio 2019/c# 中的 Azure 函数。 POST 看起来像这样:
在调试中,requestBody 从流中获取并放入字符串中。我正在将 JSON 反序列化为一个对象(我也尝试过动态),但未填充该对象。事实上,对象“数据”甚至似乎并不存在。查看我在断点处的图像,值“数据”甚至不存在:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = String.Empty;
using (StreamReader streamReader = new StreamReader(req.Body))
{
requestBody = await streamReader.ReadToEndAsync();
}
var data = JsonConvert.DeserializeObject<AppInfo>(requestBody);
string responseMessage = string.IsNullOrEmpty(data.UserGuid) ? "User not logged" : "User logged";
return new OkObjectResult(responseMessage);
}
public class AppInfo
{
public string AppName = "";
public string UserGuid = "";
}
我使用下面的代码可以获得 Json 反序列化对象。请查看下方
我尝试使用 dynamic 和 Var 数据类型来存储 json 反序列化对象
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var data = JsonConvert.DeserializeObject<AppInfo>(requestBody as string);
var val = JsonConvert.SerializeObject(data);
string responseMessage = string.IsNullOrEmpty(data.UserGuid) ? "User not logged" : "User logged";
return new OkObjectResult(responseMessage);
}
public class AppInfo
{
public string AppName = "";
public string UserGuid = "";
}
这不是代码问题,而是 Visual Studio 的问题。 这是一个更大项目的一部分。另一个我打算发布的项目,但决定添加一些额外的功能。我已将构建更改为“发布”,然后添加了此代码。在我将构建类型设置为“调试”之前,它无法 运行 正确地执行此代码 - 然后代码开始正常工作。