Каков самый простой способ решить эту проблему, если я не могу использовать JsonSerializer.Deserialize, потому что я всегда получаю исключение в этой строке (это строка 444 в моем проекте в коде Visual Studio):
Код: Выделить всё
FunctionExecutionContext context = JsonSerializer.Deserialize(await req.ReadAsStringAsync());
Код: Выделить всё
using System;
using System.Threading.Tasks;
using System.Text.Json;
using System.Collections.Generic;
using PlayFab;
using PlayFab.AdminModels;
using System.IO;
using System.Net;
using PlayFab.Samples;
using System.Linq;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;
namespace My.Functions
{
public class Result
{
public bool FunctionSuccessful { get; set; }
public string Errorline1 { get; set; }
public string Errorline2 { get; set; }
public string Errorline3 { get; set; }
public string Errorline4 { get; set; }
public string Errorline5 { get; set; }
public string Errorline6 { get; set; }
public bool Isexpired { get; set; }
public bool Isbanned { get; set; }
public bool Zummenuweiterleitenmoeglich { get; set; }
public string Entityid { get; set; }
public string Entitytype { get; set; }
public string Playersessionticket { get; set; }
public string Playfabid { get; set; }
public DateTime Playersessionticketexpdate { get; set; }
}
public class NewFunction
{
private readonly ILogger log;
public NewFunction(ILogger logger)
{
log = logger;
}
[Function("DeleteAccountSendEmail")]
public async Task DeleteAccountSendEmail(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestData req)
{
FunctionExecutionContext context = JsonSerializer.Deserialize(await req.ReadAsStringAsync());
var args = context.FunctionArgument;
string language = args["Language"];
log.LogInformation($"MyLanguage = {language}");
string loginemail = args["Loginemail"];
log.LogInformation($" = {loginemail}");
bool updateaccountrecsuccessful = false;
string errorline1 = string.Empty;
string errorline2 = string.Empty;
string errorline3 = string.Empty;
string errorline4 = string.Empty;
string errorline5 = string.Empty;
string errorline6 = string.Empty;
bool isbanned = false;
bool isexpired = false;
log.LogInformation($"FunctionSuccessful: = {updateaccountrecsuccessful}");
var result1 = new Result
{
FunctionSuccessful = updateaccountrecsuccessful,
Errorline1 = string.Empty,
Errorline2 = string.Empty,
Errorline3 = string.Empty,
Errorline4 = string.Empty,
Errorline5 = string.Empty,
Errorline6 = string.Empty,
Isexpired = isexpired,
Isbanned = isbanned
};
var res1 = req.CreateResponse(HttpStatusCode.OK);
res1.Headers.Add("Content-Type", "application/json");
await res1.WriteStringAsync(JsonSerializer.Serialize(result1));
return res1;
}
}
}
Входные данные не содержат токенов JSON. Ожидается, что ввод начнется с действительного токена JSON, если isFinalBlock имеет значение true. НомерЛинии: 0 | BytePositionInLine: 0.
Результат: Тип ошибки: Исключение: System.Text.Json.JsonException: Входные данные не содержат токенов JSON. Ожидается, что ввод начнется с действительного токена JSON, если isFinalBlock имеет значение true. Путь: $ | НомерЛинии: 0 | BytePositionInLine: 0. ---> System.Text.Json.JsonReaderException: входные данные не содержат токенов JSON. Ожидается, что ввод начнется с действительного токена JSON, если isFinalBlock имеет значение true. НомерЛинии: 0 | BytePositionInLine: 0. в System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ресурс ExceptionResource, Byte nextByte, ReadOnlySpan
Код: Выделить всё
1 bytes) at System.Text.Json.Utf8JsonReader.Read() at System.Text.Json.Serialization.JsonConverterКод: Выделить всё
1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpanКод: Выделить всё
1 jsonTypeInfo, NullableКод: Выделить всё
1 json, JsonTypeInfoКод: Выделить всё
1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpanКод: Выделить всё
1 jsonTypeInfo, NullableКод: Выделить всё
1 json, JsonTypeInfoПодробнее здесь: https://stackoverflow.com/questions/798 ... ion-the-in
Мобильная версия