JsonProvider가 Generic.Dictionary로 역 직렬화 할 수 있습니까?

아르빌

유형 공급자에 대해 배우고 있으며 획기적인 기능처럼 보입니다. 그러나 대상 유형에 Generic.Dictionary 속성이 있도록 JsonProvider를 사용하여 json을 역 직렬화 할 수 없습니다. Json.NET으로 할 수 있습니다. 다음은 코드입니다.

type ByProv = JsonProvider<"""{"dict":{"A":1,"B":2}}""">
type ByHand(d:Dictionary<string,int>) =
    member val dict = d with get,set

let text = """{"dict":{"C":3,"D":4}}"""
let newt = JsonConvert.DeserializeObject<ByHand> text
let prov = ByProv.Parse text
printfn "%A" newt.dict.["C"]
//Can only call statically inferred A or B (and it will throw at run-time)
printfn "%A" prov.Dict.A

분명히 기본적으로가 dict아닌 레코드 유형으로 추론됩니다 Dictionary. 무시할 수 있습니까?

토마스 페트리 세크

JSON 유형 공급자는 JSON 레코드가 레코드 (고정 필드 이름 포함) 저장에 사용되고 JSON 배열이 컬렉션 저장에 사용된다고 가정합니다. 귀하의 예는 이것이 크게 작동하지 않는 경우 중 하나입니다.

동적으로 이름이 지정된 필드가있는 JSON 레코드에 액세스해야하는 JsonValue경우 제공된 유형에 의해 노출되는 기본 사용할 수 있습니다 .

type ByProv = JsonProvider<"""{"dict":{"A":1,"B":2}}""">

let text = """{"dict":{"C":3,"D":4}}"""
let prov = ByProv.Parse text

prov.Dict.JsonValue.["C"].AsInteger()

이것은 그다지 좋지 않으며 JSON 유형 공급자를 확장하여이를 더 잘 처리 할 수 ​​있다고 가정합니다 (레코드를 배열과 더 비슷하게 처리). 토론을 위해 문제를 제출하고 GitHub의 F # 데이터에 풀 요청을 제출하십시오 !

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Symfony serializer가 \ DateTime으로 역 직렬화 할 수 없습니다.

분류에서Dev

직렬화 후 저지로 json을 역 직렬화 할 수 없습니까?

분류에서Dev

시스템 유형을 XML로 직렬화 / 역 직렬화 할 수 있습니까?

분류에서Dev

어떻게 직렬화 된 일반 목록으로 json 파일을 역 직렬화 할 수 있습니까?

분류에서Dev

현재 JSON 개체 (예 : { "name": "value"})를 'System.Collections.Generic.List 유형으로 역 직렬화 할 수 없습니다.

분류에서Dev

json_decode가 제대로 역 직렬화 할 수 없습니다.

분류에서Dev

이 json을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

JsonUtility로 데이터를 역 직렬화 할 수 없습니다.

분류에서Dev

xml을 List <T>로 역 직렬화 할 수 없습니다.

분류에서Dev

문자열로 역 직렬화 할 수 없습니다.

분류에서Dev

json을 제대로 역 직렬화 할 수 없습니다.

분류에서Dev

JSon을 C #으로 역 직렬화 할 수 없습니다.

분류에서Dev

XML 게시를 WCF 서비스로 역 직렬화 할 수 없습니다. 내가 무엇을 놓치고 있습니까?

분류에서Dev

가능한 경우 강력한 형식의 멤버가있는 ExpandoObject (또는 사전)로 역 직렬화 할 수 있습니까?

분류에서Dev

값을 잃지 않고 중복 키가있는 JSON을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

xml 문서를 역 직렬화 할 수 있지만 동일한 문서로 직렬화 할 수 없음

분류에서Dev

케이스가 일치하지 않을 때 열거 형을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

xml의 이전 버전을 최신 구조로 역 직렬화 할 수 있습니까?

분류에서Dev

Python에서 C # Newtonsoft와 같은 클래스로 Json을 역 직렬화 할 수 있습니까?

분류에서Dev

직렬화 및 역 직렬화는 사전을 백업 필드로 사용할 수 없습니다.

분류에서Dev

$ 기호가있는 변수로 JSON 역 직렬화

분류에서Dev

C ++ MFC에서 이진 직렬화 된 개체를 C #에서 역 직렬화 할 수 있습니까?

분류에서Dev

현재 JSON 개체를 'System.Collections.Generic.List`1 [System.String]'유형으로 역 직렬화 할 수 없습니다.

분류에서Dev

현재 JSON 개체 (예 : { "name": "value"})를 'System.Collections.Generic.List`1'유형으로 역 직렬화 할 수 없습니다.

분류에서Dev

이와 같은 배열을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

C #에서이 json을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

인터페이스로 형식을 역 직렬화 할 수 없습니다.

분류에서Dev

bndtools osgi 프로젝트에서 xml을 역 직렬화 할 수 없습니다.

분류에서Dev

NoClassDefFoundError로 인해 XStream이 XML을 역 직렬화 할 수 없습니다.

Related 관련 기사

  1. 1

    Symfony serializer가 \ DateTime으로 역 직렬화 할 수 없습니다.

  2. 2

    직렬화 후 저지로 json을 역 직렬화 할 수 없습니까?

  3. 3

    시스템 유형을 XML로 직렬화 / 역 직렬화 할 수 있습니까?

  4. 4

    어떻게 직렬화 된 일반 목록으로 json 파일을 역 직렬화 할 수 있습니까?

  5. 5

    현재 JSON 개체 (예 : { "name": "value"})를 'System.Collections.Generic.List 유형으로 역 직렬화 할 수 없습니다.

  6. 6

    json_decode가 제대로 역 직렬화 할 수 없습니다.

  7. 7

    이 json을 어떻게 역 직렬화 할 수 있습니까?

  8. 8

    JsonUtility로 데이터를 역 직렬화 할 수 없습니다.

  9. 9

    xml을 List <T>로 역 직렬화 할 수 없습니다.

  10. 10

    문자열로 역 직렬화 할 수 없습니다.

  11. 11

    json을 제대로 역 직렬화 할 수 없습니다.

  12. 12

    JSon을 C #으로 역 직렬화 할 수 없습니다.

  13. 13

    XML 게시를 WCF 서비스로 역 직렬화 할 수 없습니다. 내가 무엇을 놓치고 있습니까?

  14. 14

    가능한 경우 강력한 형식의 멤버가있는 ExpandoObject (또는 사전)로 역 직렬화 할 수 있습니까?

  15. 15

    값을 잃지 않고 중복 키가있는 JSON을 어떻게 역 직렬화 할 수 있습니까?

  16. 16

    xml 문서를 역 직렬화 할 수 있지만 동일한 문서로 직렬화 할 수 없음

  17. 17

    케이스가 일치하지 않을 때 열거 형을 어떻게 역 직렬화 할 수 있습니까?

  18. 18

    xml의 이전 버전을 최신 구조로 역 직렬화 할 수 있습니까?

  19. 19

    Python에서 C # Newtonsoft와 같은 클래스로 Json을 역 직렬화 할 수 있습니까?

  20. 20

    직렬화 및 역 직렬화는 사전을 백업 필드로 사용할 수 없습니다.

  21. 21

    $ 기호가있는 변수로 JSON 역 직렬화

  22. 22

    C ++ MFC에서 이진 직렬화 된 개체를 C #에서 역 직렬화 할 수 있습니까?

  23. 23

    현재 JSON 개체를 'System.Collections.Generic.List`1 [System.String]'유형으로 역 직렬화 할 수 없습니다.

  24. 24

    현재 JSON 개체 (예 : { "name": "value"})를 'System.Collections.Generic.List`1'유형으로 역 직렬화 할 수 없습니다.

  25. 25

    이와 같은 배열을 어떻게 역 직렬화 할 수 있습니까?

  26. 26

    C #에서이 json을 어떻게 역 직렬화 할 수 있습니까?

  27. 27

    인터페이스로 형식을 역 직렬화 할 수 없습니다.

  28. 28

    bndtools osgi 프로젝트에서 xml을 역 직렬화 할 수 없습니다.

  29. 29

    NoClassDefFoundError로 인해 XStream이 XML을 역 직렬화 할 수 없습니다.

뜨겁다태그

보관