我有这个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的字符串,我该怎么办?
答案 0 :(得分:1)
通过HEX编辑器,我检查了文件的开头,发现我的IDE在文件的开头添加了BOM。所以它看起来像这样:
[.. {..“
因为它们是not recommended我选择通过使用资源管理器/ Finder创建一个新文件并在其中添加我的JSON来摆脱它们。