의 위해 내가 필요로이 클래스는 JSON으로 직렬화 할 필요가 유지 : 나는 ServiceStack.Text, NewtonSoft.Json 및 DataContractJsonSerializer를 시도JSON 파싱 객체 - 요소
[DataContract]
public class InfoRequest
{
[DataMember]
public string folder_id { get; set; }
[DataMember]
public string file_type_id { get; set; }
[DataMember]
public string prefix { get; set; }
[DataMember]
public fileInfo[] files;
[DataMember]
public termInfo[] terms;
}
[DataContract]
public class fileInfo
{
[DataMember]
public string name { get; set; }
[DataMember]
public string size { get; set; }
}
[DataContract]
public class termInfo
{
[DataMember]
public string term_id { get; set; }
[DataMember]
public string value { get; set; }
}
. 각 라이브러리에서 다른 결과를 얻었으며 그 중 어느 것도 데이터 멤버의 순서를 유지하지 못합니다. ,
{
"files":[
{
"name":"Blip.txt",
"size":"448"
},
{
"name":"blip.jpg",
"size":"71535"
}
],
"terms":[
{
"term_id":"1000",
"value":"Copyright"
},
{
"term_id":"1000",
"value":"Copyright"
}
],
"folder_id":"11245",
"file_type_id":"234",
"prefix":"",
"ServiceStack":{
"folder_id":"11245",
"file_type_id":"234",
"prefix":""
},
"MS":{
"file_type_id":"234",
"files":[
{
"name":"Blip.txt",
"size":"448"
},
{
"name":"blip.jpg",
"size":"71535"
}
],
"folder_id":"11245",
"prefix":"",
"terms":[
{
"term_id":"1000",
"value":"Copyright"
},
{
"term_id":"1000",
"value":"Copyright"
}
]
}
}
내가 DataMembers의 순서해야 하지 문제를 의심 :
JsonConvert : (. ServiceStack도 모든 DataMembers를 직렬화하지 않습니다) 각 라이브러리에 같은 InfoRequest 객체를 전달, 나는이 문자열을 얻을 하지만 서버에서 오류가 발생하여 문제가 될 수 있다고 생각합니다.
모든 통찰력을 주시면 감사하겠습니다 ...
서버에서 어떤 오류가 발생하고 있습니까? 왜냐하면 데이터 멤버의 순서는 일반적으로 중요하지 않기 때문입니다. 역 직렬화 할 때 자동으로 해당 객체로 변환됩니다. – Sachin
정말 펑키 한 서버 응용 프로그램을 다루지 않는 한 순서 문제는 의심 스럽습니다. 순서를 다루는 데 너무 많은 시간을 소비하기 전에 그 이론을 테스트해야합니다. 앱이 현재 직렬화되는 방식으로 JSON을 수동으로 게시 한 다음 원하는대로 문자열을 다시 정렬하고 다시 게시하십시오. 오류가 매개 변수의 순서와 관련이 있는지 여부를 알려줍니다. –
DataMembers의 Order 속성을 설정하는 것을 보지 못했습니다. 어때? –