【发布时间】:2013-02-04 15:04:58
【问题描述】:
有没有办法设置 JSON 将变量解码为双精度而不是十进制?
示例:
[DataContract]
class ReturnData
{
[DataMember]
public object[] array { get; set; }
}
public ReturnData DecodeJsonString()
{
string str = "{ \"array\" : [\"custom array\", 0.1, 0.2, 0.3, 0.4] }";
var json = new DataContractJsonSerializer(typeof(ReturnData));
var stream = new MemoryStream(Encoding.UTF8.GetBytes(str));
var obj = json.ReadObject(stream);
stream.Close();
return (ReturnData)obj;
}
我得到包含十进制数字的“obj”数组,但我需要它是双倍的。我不想自己转换成双倍。有没有办法教 JsonSerializer 这样做?
【问题讨论】:
-
你不能将
array声明为double[]吗? -
不,数组是自定义的。它也可以包含字符串类型。
标签: c# json datacontractjsonserializer