【发布时间】:2018-07-25 06:06:44
【问题描述】:
我有这个 JSON 文件:
[
{
"param1": "someURL",
"param2": "someURL2"
},
{
"param1": "someURL3",
"param2": "someURL4"
}
]
JsonLint 表示这个 JSON 是有效的。
现在我从 Azure 存储读取这个 JSON 文件,将其下载到流中,然后对其进行编码:
string content = Encoding.UTF8.GetString(memoryStream.ToArray());
接下来我想将其反序列化为对象列表:
List<MyParamObject> deserialized = JsonConvert.DeserializeObject<List<MyParamObject>>(text);
MyParamObject 是一个 POCO,具有两个属性,分别名为 Param1 和 Param2
当我尝试反序列化它时,我收到以下错误:
Unexpected character encountered while parsing value: ?. Path '', line 0, position 0.
但我确实给了 JsonConvert 一个带有有效 JSON 的字符串,我该怎么办?
【问题讨论】:
-
content看起来好吗? -
您的
memoryStream必须以BOM 开头。要处理 BOM,请使用StreamReader,如 How do I ignore the UTF-8 Byte Order Marker in String comparisons? 所示,而不是Encoding.UTF8.GetString()。事实上,我认为这是重复的。如果您同意,我会照此关闭它。 -
为什么投反对票?