3
속성에 사용자 정의 이름을 지정할 수 없습니다. 추한 속성 이름으로 서버에서 JSON을받습니다 (변경할 수 없습니다). 명명 규칙을 고수하기 위해 C# 코드를 사용하고 싶습니다. 다음은 JSON 클래스를 deserialize하기위한 사용자 정의 DataMember 이름
내가 가지고있는 코드입니다 (result0.StringValue가 null 유지) :[TestClass()]
public class WebServiceResultConverterTest
{
[DataContract(Name = "SimpleObject")]
private class SimpleObject
{
[DataMember(Name = "str_value")]
public String StringValue { get; set; }
[DataMember(Name = "int_value")]
public String IntValue { get; set; }
}
[TestMethod()]
public void DeserializeTest()
{
String input0 = @"{
""str_value"": ""This is a test string"",
""int_value"": 1664
}";
JavaScriptSerializer serializer = new JavaScriptSerializer();
SimpleObject result0 = serializer.Deserialize<SimpleObject>(input0);
Assert.AreEqual("This is a test string", result0.StringValue);
Assert.AreEqual(1664, result0.IntValue);
}
}
감사합니다. 일부 데이터 멤버에 대해 JSON을 구문 분석하는 사용자 지정 방식을 지정하는 것은 어떤 의미입니까? –
그것은 어떤 종류의 제어가 필요한지에 달려 있습니다. JSON.NET http://json.codeplex.com/에서 datacontract를 제어 할 수 있습니다. JSONConverter를 만들 수 있습니다. 그렇지 않으면 데이터 계약 하나를 사용하여 직렬화하는 방법을 정의하는 서로 게이트 클래스를 만들 수 있습니다. http://msdn.microsoft.com/en-us/library/system.runtime.serialization.idatacontractsurrogate.aspx –