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

Katit

첫째 .. 저는 JSON.NET이나 다른 파서에 관심이 없습니다. DataContractJsonSerializer

REST API로 가져 와서 보내는 구조로 작업해야하며 다음과 같이 보입니다.

{           "records": [
        {
            "attributes": {
                "OBJECTID": 1,
                "Address": "380 New York St.",
                "City": "Redlands",
                "Region": "CA",
                "Postal": "92373"
            }
        },
   {
            "attributes": {
                "OBJECTID": 2,
                "Address": "1 World Way",
                "City": "Los Angeles",
                "Region": "CA",
                "Postal": "90045"
            }
        }
    ]

우리가 볼 수있는 것은 다음과 같습니다.

class SomeData
{
    public List<SomeRecord> Records { get; set; }
}

class SomeRecord
{
    public List<KeyValuePair<string, string>> Attributes { get; set; }
}

serializer가 이와 같은 구조를 생성 할 수 있도록 객체를 어떻게 어트 리뷰 션합니까? 아니면 각 속성을 포함하는 속성을 가진 객체를 만들어야합니까?

문제는이 웹 서비스가 여기저기서 속성 인 것처럼 보이며 가능한 모든 이름조차 확신하지 못합니다. 따라서 KVP 목록은 좋은 선택처럼 보이지만 저에게는 작동하지 않습니다.

낮은 날으는 펠리컨

다음이 작동해야합니다.

    [DataContract]
    [KnownType(typeof(Record))]
    public class RecordList
    {
        public RecordList()
        {
            Records = new List<Record>();
        }

        [DataMember]
        public List<Record> Records { get; set; }
    }

    public class Record
    {
        public Record()
        {
            Attributes = new AttributeList();
        }

        [DataMember]
        public AttributeList Attributes { get; set; }
    }


    [Serializable]
    public class AttributeList : DynamicObject, ISerializable
    {
        private readonly Dictionary<string, object> attributes = new Dictionary<string, object>();

        public override bool TrySetMember(SetMemberBinder binder, object value)
        {
            attributes[binder.Name] = value;

            return true;
        }

        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            foreach (var kvp in attributes)
            {
                info.AddValue(kvp.Key, kvp.Value);
            }
        }
    }


        [Test]
        public void TestSerialize()
        {
            var holder = new RecordList();

            dynamic record = new Record();
            record.Attributes.OBJECTID = 1;
            record.Attributes.Address = "380 New York St.";
            record.Attributes.City = "Redlands";
            record.Attributes.Address = "Region";
            record.Attributes.Region = "CA";
            record.Attributes.Postal = "92373";

            holder.Records.Add(record);

            var stream1 = new MemoryStream();
            var serializer = new DataContractJsonSerializer(typeof(RecordList));
            serializer.WriteObject(stream1, holder);

            stream1.Position = 0;
            StreamReader sr = new StreamReader(stream1);
            Console.Write("JSON form of holder object: ");
            Console.WriteLine(sr.ReadToEnd());
        }

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

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

분류에서Dev

DataContractJsonSerializer를 사용하여 개체를 JSON으로 직렬화 할 수 없음

분류에서Dev

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

분류에서Dev

Json.NET을 사용하여 ArrayList의 ArrayList를 직렬화 및 역 직렬화하는 방법

분류에서Dev

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

분류에서Dev

동적 키를 사용하여 JSON을 사전으로 역 직렬화

분류에서Dev

객체를 사전으로 역 직렬화하는 JSON

분류에서Dev

JSON 직렬 변환기를 사용하여 Mongo DB 개체 ID 역 직렬화

분류에서Dev

Jackson을 사용하여 JAVA 클래스를 대상으로하는 JSON 직렬화 및 역 직렬화

분류에서Dev

DataContractSerializer를 사용하여 역 직렬화

분류에서Dev

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

분류에서Dev

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

분류에서Dev

속성 이름에 $를 사용하여 JSON 역 직렬화

분류에서Dev

json.net으로 JSON 역 직렬화

분류에서Dev

JavaScriptSerializer를 사용하여 JSON을 튜플으로 역 직렬화하는 방법

분류에서Dev

Json.net을 사용하여 Vb.net에서 JSON 객체를 어떻게 역 직렬화합니까?

분류에서Dev

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

분류에서Dev

JSON.NET을 사용하여 파생 클래스로 역 직렬화

분류에서Dev

C #에서 int를 키로 사용하는 JSON 역 직렬화

분류에서Dev

ASP.NET MVC4 'ExtraElements'를 사용하여 JSON을 C # ViewModel로 역 직렬화

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

C #에서 Newtonsoft Json.NET을 사용하여 JSON 역 직렬화

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

JSON을 .net 객체로 역 직렬화

분류에서Dev

.NET의 필드를 기반으로 json 역 직렬화 (C #)

Related 관련 기사

  1. 1

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

  2. 2

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

  3. 3

    DataContractJsonSerializer를 사용하여 개체를 JSON으로 직렬화 할 수 없음

  4. 4

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

  5. 5

    Json.NET을 사용하여 ArrayList의 ArrayList를 직렬화 및 역 직렬화하는 방법

  6. 6

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

  7. 7

    동적 키를 사용하여 JSON을 사전으로 역 직렬화

  8. 8

    객체를 사전으로 역 직렬화하는 JSON

  9. 9

    JSON 직렬 변환기를 사용하여 Mongo DB 개체 ID 역 직렬화

  10. 10

    Jackson을 사용하여 JAVA 클래스를 대상으로하는 JSON 직렬화 및 역 직렬화

  11. 11

    DataContractSerializer를 사용하여 역 직렬화

  12. 12

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

  13. 13

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

  14. 14

    속성 이름에 $를 사용하여 JSON 역 직렬화

  15. 15

    json.net으로 JSON 역 직렬화

  16. 16

    JavaScriptSerializer를 사용하여 JSON을 튜플으로 역 직렬화하는 방법

  17. 17

    Json.net을 사용하여 Vb.net에서 JSON 객체를 어떻게 역 직렬화합니까?

  18. 18

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

  19. 19

    JSON.NET을 사용하여 파생 클래스로 역 직렬화

  20. 20

    C #에서 int를 키로 사용하는 JSON 역 직렬화

  21. 21

    ASP.NET MVC4 'ExtraElements'를 사용하여 JSON을 C # ViewModel로 역 직렬화

  22. 22

    JSON.net을 사용하여 대량의 json 데이터 역 직렬화

  23. 23

    JSON.net을 사용하여 대량의 json 데이터 역 직렬화

  24. 24

    C #에서 Newtonsoft Json.NET을 사용하여 JSON 역 직렬화

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

    JSON을 .net 객체로 역 직렬화

  29. 29

    .NET의 필드를 기반으로 json 역 직렬화 (C #)

뜨겁다태그

보관