사전으로 사용자 지정 JSON.net 역 직렬화 <string, string>

Jeremy Wiebe

JSON.net을 사용하여 JSON 구조를 사전으로 역 직렬화하려고합니다. 트릭은 JSON 문서가 중첩 된 객체의 계층 구조이지만 최상위 속성 + 값 쌍만보고 싶습니다.

예 :

{
    "prop1": 142,
    "prop2": "Some description",
    "object_prop": {
        "abc": 2,
        "def": {
            "foo": "hello",
            "bar": 4
        }
    }
}

위의 예를 기반으로 역 직렬화 된 사전에 "prop1", "prop2"및 "object_prop"의 3 개 항목이 포함되도록하고 싶습니다. "object_prop"는 문자열이어야합니다 (나중에 객체로 역 직렬화 할 것입니다).

참고 : 최상위 키 / 값 쌍과 라이브러리를 사용하는 클라이언트가 나중에 값의 유형을 정의 할 수있는 위치 만 알고있는 재사용 가능한 라이브러리를 만들고 싶기 때문에이 작업을 수행하려고합니다. (즉, 재사용 가능한 라이브러리가 객체 유형에 바인딩되는 것을 원하지 않습니다. 즉 "object_prop").

브라이언 로저스

이런 건 어때?

class Program
{
    static void Main(string[] args)
    {
        string json = @"
        {
            ""prop1"": 142,
            ""prop2"": ""Some description"",
            ""object_prop"": {
                ""abc"": 2,
                ""def"": {
                    ""foo"": ""hello"",
                    ""bar"": 4
                }
            },
            ""prop3"": 3.14
        }";

        Dictionary<string, string> dict = new Dictionary<string, string>();
        JObject jo = JObject.Parse(json);

        foreach (JProperty prop in jo.Properties())
        {
            if (prop.Value.Type == JTokenType.Array || 
                prop.Value.Type == JTokenType.Object)
            {
                // JSON string for complex object
                dict.Add(prop.Name, prop.Value.ToString(Formatting.None));  
            }
            else
            {
                // primitive value converted to string
                object value = ((JValue)prop.Value).Value;  
                dict.Add(prop.Name, value != null ? value.ToString() : null);
            }
        }

        foreach (KeyValuePair<string, string> kvp in dict)
        {
            Console.WriteLine(kvp.Key + " = " + kvp.Value);
        }
    }
}

산출:

prop1 = 142
prop2 = Some description
object_prop = {"abc":2,"def":{"foo":"hello","bar":4}}
prop3 = 3.14

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON.NET을 사용하여 dictionary <string, object> 역 직렬화 및 직렬화

분류에서Dev

Json String .net 역 직렬화

분류에서Dev

Json.NET을 사용하여 Json String에서 중첩 된 DataSet 역 직렬화

분류에서Dev

C # JSON.NET을 사용하여 Dictionary <(Enum, Enum), string> 역 직렬화

분류에서Dev

System.Text.Json 사용자 지정 직렬화 / 역 직렬화

분류에서Dev

.NET DataContractJsonSerializer serializer를 사용하여 사전으로 JSON 직렬화 / 역 직렬화

분류에서Dev

.NET DataContractJsonSerializer serializer를 사용하여 사전으로 JSON 직렬화 / 역 직렬화

분류에서Dev

사전을 특성으로 사용하여 JSON을 역 직렬화하면 null .NET Dictionary <string, string>이 생성됩니다.

분류에서Dev

Gson을 사용하여 JSON을 HashMAp <String, POJO>로 역 직렬화하지 못함

분류에서Dev

Jackson을 사용한 사용자 지정 JSON 직렬화 / 역 직렬화

분류에서Dev

Json.NET을 IDictionary <string, object>도 구현하는 사용자 지정 동적 형식의 선언 된 속성을 직렬화 및 역 직렬화하려면 어떻게해야합니까?

분류에서Dev

JSON.net을 사용하여 동적으로 역 직렬화

분류에서Dev

Django 사용자 지정 역 직렬화

분류에서Dev

JSON을 Dictionary <string, List <string >>으로 역 직렬화

분류에서Dev

JsonConverter를 사용한 C #의 사용자 지정 JSON 역 직렬화

분류에서Dev

System.Text.Json을 사용한 사용자 지정 역 직렬화

분류에서Dev

DataContractJsonSerializerOperationFormatter는 JSON.NET을 사용하여 역 직렬화하지 않습니다.

분류에서Dev

Json.NET은 사용자 정의 getter 및 변경 불가능한 유형으로 속성을 역 직렬화하지 않습니다.

분류에서Dev

json.net으로 JSON 역 직렬화

분류에서Dev

Jackson의 다형성 직렬화 / 역 직렬화 및 사용자 지정 직렬화 / 역 직렬화

분류에서Dev

JSON.Net deserializer를 사용하여 동적 JSON 역 직렬화

분류에서Dev

Jackson의 사용자 지정 JSON 역 직렬화, invalide 배열 제외

분류에서Dev

Json.net JSON 파일을 C # 사전 유형으로 직접 역 직렬화 하시겠습니까?

분류에서Dev

Json.Net을 사용하여 DataSet으로 역 직렬화 할 때 ArgumentOutOfRange 예외

분류에서Dev

json.net으로 null 정규식 속성 역 직렬화

분류에서Dev

json 문자열을 .NET 개체 목록으로 역 직렬화

분류에서Dev

json 문자열을 개체 C # .net으로 역 직렬화

분류에서Dev

JSON을 C #의 Dictionary <string, List <string >>으로 역 직렬화하려고합니다.

분류에서Dev

잭슨 사용자 정의 직렬화 및 역 직렬화

Related 관련 기사

  1. 1

    JSON.NET을 사용하여 dictionary <string, object> 역 직렬화 및 직렬화

  2. 2

    Json String .net 역 직렬화

  3. 3

    Json.NET을 사용하여 Json String에서 중첩 된 DataSet 역 직렬화

  4. 4

    C # JSON.NET을 사용하여 Dictionary <(Enum, Enum), string> 역 직렬화

  5. 5

    System.Text.Json 사용자 지정 직렬화 / 역 직렬화

  6. 6

    .NET DataContractJsonSerializer serializer를 사용하여 사전으로 JSON 직렬화 / 역 직렬화

  7. 7

    .NET DataContractJsonSerializer serializer를 사용하여 사전으로 JSON 직렬화 / 역 직렬화

  8. 8

    사전을 특성으로 사용하여 JSON을 역 직렬화하면 null .NET Dictionary <string, string>이 생성됩니다.

  9. 9

    Gson을 사용하여 JSON을 HashMAp <String, POJO>로 역 직렬화하지 못함

  10. 10

    Jackson을 사용한 사용자 지정 JSON 직렬화 / 역 직렬화

  11. 11

    Json.NET을 IDictionary <string, object>도 구현하는 사용자 지정 동적 형식의 선언 된 속성을 직렬화 및 역 직렬화하려면 어떻게해야합니까?

  12. 12

    JSON.net을 사용하여 동적으로 역 직렬화

  13. 13

    Django 사용자 지정 역 직렬화

  14. 14

    JSON을 Dictionary <string, List <string >>으로 역 직렬화

  15. 15

    JsonConverter를 사용한 C #의 사용자 지정 JSON 역 직렬화

  16. 16

    System.Text.Json을 사용한 사용자 지정 역 직렬화

  17. 17

    DataContractJsonSerializerOperationFormatter는 JSON.NET을 사용하여 역 직렬화하지 않습니다.

  18. 18

    Json.NET은 사용자 정의 getter 및 변경 불가능한 유형으로 속성을 역 직렬화하지 않습니다.

  19. 19

    json.net으로 JSON 역 직렬화

  20. 20

    Jackson의 다형성 직렬화 / 역 직렬화 및 사용자 지정 직렬화 / 역 직렬화

  21. 21

    JSON.Net deserializer를 사용하여 동적 JSON 역 직렬화

  22. 22

    Jackson의 사용자 지정 JSON 역 직렬화, invalide 배열 제외

  23. 23

    Json.net JSON 파일을 C # 사전 유형으로 직접 역 직렬화 하시겠습니까?

  24. 24

    Json.Net을 사용하여 DataSet으로 역 직렬화 할 때 ArgumentOutOfRange 예외

  25. 25

    json.net으로 null 정규식 속성 역 직렬화

  26. 26

    json 문자열을 .NET 개체 목록으로 역 직렬화

  27. 27

    json 문자열을 개체 C # .net으로 역 직렬화

  28. 28

    JSON을 C #의 Dictionary <string, List <string >>으로 역 직렬화하려고합니다.

  29. 29

    잭슨 사용자 정의 직렬화 및 역 직렬화

뜨겁다태그

보관