Diagnostic and cause
링크Type is not JSON decodable
- 계열
- topaz
- 단계
- check
- 코드
TPZ5534
원인과 조건
json.parseAs requires an explicit JSON-decodable result type. Calling json.parseAs("1") without a type argument is rejected with TPZ5534; json. is accepted.
대응
Supply the target type after json.parseAs, such as json.. Choose a JSON-decodable type for the result.
Compiler phase: check.
Compiler explanation: A typed JSON decode target is not a supported concrete Topaz data shape.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
⟨value⟩requires an explicit type argument, e.g.⟨value⟩<User>(.Source. . ) ⟨value⟩is not JSON-decodable, so⟨value⟩cannot decode into it Source
json.parseAs requires an explicit decodable result type. A call without type arguments is rejected with TPZ5534 even when its text contains a valid JSON integer.
Typed JSON decoding needs a type argument
json.parseAs requires an explicit JSON-decodable result type. Calling json.parseAs("1") without a type argument is rejected with TPZ5534; json. is accepted.
Response
링크Supply the target type after json.parseAs, such as json.. Choose a JSON-decodable type for the result.
Reproduction and verification
링크Rejected program
링크import std.jsonlet decoded = json.parseAs("1")
표준 출력 없음.기대 결과
A bare call without type arguments can also report TPZ5020 for missing contextual type. The diagnostic assertion requires TPZ5534 and permits that accompanying diagnostic.
Repaired program
링크import std.jsonlet decoded = json.parseAs<int>("1")
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
A bare call without type arguments can also report TPZ5020 for missing contextual type. The diagnostic assertion requires TPZ5534 and permits that accompanying diagnostic.