0

在向端点发出 Get-Request 后,我​​逐键解析返回的 Json 字符串,这很有效。当我尝试将返回的日期('createdAt')转换为日期类型时,会出现问题。

我收到的错误

Die Konvertierung von Microsoft.Dynamics.Nav.Runtime.NavJsonValue in Microsoft.Dynamics.Nav.Runtime.NavDate ist nicht möglich。

这意味着:

无法从 NavJsonValue 转换为 NavDate

我解析的 Json

{

    "entryNo": "2",

    "title": "TEST",

    "description": "Test Item",

    "websiteUrl": "Test Url",

    "createdAt": "14.01.2021"

}

相关代码

_testEntry.CreatedAt := GetJsonToken(jsonObject, 'createdAt').AsValue().AsDate();

local procedure GetJsonToken(jsonObject: JsonObject; tokenKey: Text) jsonToken: JsonToken;
begin
    if not jsonObject.Get(tokenKey, jsonToken) then
        exit;
end;
4

1 回答 1

0

返回的日期格式不是有效的 JavaScript 格式,这是AsDate()预期的。

如果您控制端点,则应将日期格式更改为YYYY-MM-DD.

如果您无法控制端点,则需要解析日期值:

local procedure ParseDate(Token: JsonToken): Date
var
    DateParts: List of [Text];
    Year: Integer;
    Month: Integer;
    Day: Integer;
begin
    // Error handling omitted from example
    DateParts := Token.AsValue().AsText().Split('.');
    Evaluate(Day, DateParts.Get(1));
    Evaluate(Month, DateParts.Get(2));
    Evaluate(Year, DateParts.Get(3));
    exit(DMY2Date(Day, Month, Year));
end;
于 2021-01-20T08:12:37.660 回答