, 사전 직렬화과 같이 할 DataContractJsonSerializer 사용 :.NET : DataContractJsonSerializer를 사용하여 JSON 연관 배열로 직렬화 할 수 있습니까?
[CollectionDataContract]
public class Clazz : Dictionary<String,String> {}
....
var c1 = new Clazz();
c1["Red"] = "Rosso";
c1["Blue"] = "Blu";
c1["Green"] = "Verde";
이 코드 C1 일렬 :
[{"Key":"Red","Value":"Rosso"},
{"Key":"Blue","Value":"Blu"},
{"Key":"Green","Value":"Verde"}]
:
var dcjs = new DataContractJsonSerializer(c1.GetType());
var json = new Func<String>(() =>
{
using (var ms = new System.IO.MemoryStream())
{
dcjs.WriteObject(ms, c1);
return Encoding.ASCII.GetString(ms.ToArray());
}
})();
...이 JSON 생산 그러나 이것은 Javascript 연관 배열이 아닙니다. 내가 자바 스크립트에서 해당 일을 할 경우 사전을 제작 한 다음 같은, 직렬화 :
이var a = {};
a["Red"] = "Rosso";
a["Blue"] = "Blu";
a["Green"] = "Verde";
// use utility class from http://www.JSON.org/json2.js
var json = JSON.stringify(a);
결과는 다음과 같습니다
{"Red":"Rosso","Blue":"Blu","Green":"Verde"}
내가 DCJS 생산 또는 직렬화 된 문자열을 소비 얻을 수있는 방법 사전은 JSON2.js과 호환됩니까?
나는 ASP.NET에서 약 JavaScriptSerializer을 알고있다. 매우 WCF 친화인지 확실하지 않습니다. 그것은 DataMember, DataContract 특성을 존중합니까?
JavaScriptSerializer는 DataMember와 DataContract를 모르기 때문에 걱정할 필요가 없습니다. –