我遇到奇怪的问题.Bellow你可以看到我的测试代码DataContractJsonSerializer对待某些值不正确
[DataContract]
public class Test
{
[DataMember]
public string Name { get; set; }
}
private static void Main(string[] args)
{
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("{ \"Name\" : Isometext }"));
var s = new DataContractJsonSerializer(typeof(Test));
var r = (Test)s.ReadObject(ms);
Console.WriteLine(r.Name);
}
名= Isometext - OK
名= Tsometext -Exception
名= Nsometext - 确定
name = sometext - 异常
名= nsometext - 异常
为什么DataContractJsonSerializer对待与资本我和ñ为正确的值开始值?它是错误吗?
看起来像一个无效的json字符串。你是否尝试用''{{“Name \”:\“sometext \”}“'''双引号来包装** sometext **字符串' – bkdev
是否必须使用DataContractJsonSerializer?我知道这个问题与你所问的问题无关。但是我仍然很好奇你为什么使用DataContractJsonSerializer,当Newtonsoft.Json可以为你提供更好的性能。 –
只能使用'UTF8'。 –