C# 分析值时遇到意外字符:?。路径'';,第0行,位置0

C# 分析值时遇到意外字符:?。路径'';,第0行,位置0,c#,json,json.net,C#,Json,Json.net,我有这个JSON文件: [ { "param1": "someURL", "param2": "someURL2" }, { "param1": "someURL3", "param2": "someURL4" } ] 表示此JSON是有效的 现在,我从Azure Storage读取此JSON文件,将其下载到流中,然后对其进行编码: string content=Encoding.UTF8.GetS

我有这个JSON文件:

[
    {
        "param1": "someURL",
        "param2": "someURL2"
    },
    {
        "param1": "someURL3",
        "param2": "someURL4"
    }
]
表示此JSON是有效的

现在,我从Azure Storage读取此JSON文件,将其下载到流中,然后对其进行编码:

string content=Encoding.UTF8.GetString(memoryStream.ToArray())

接下来,我想将其反序列化为对象列表:

List反序列化=JsonConvert.DeserializeObject(文本)

MyParamObject
是一个POCO,具有两个名为
Param1
Param2

当我尝试对其进行反序列化时,会出现以下错误:

分析值时遇到意外字符:?。路径“”,第0行,位置0。


但是我确实给了JSONVERT一个带有有效JSON的字符串。我能做什么呢?

通过一个十六进制编辑器,我检查了文件的开头,发现我的IDE在文件的开头添加了一个。看起来是这样的:

ï»【…{.】


正如它们一样,我选择通过使用Explorer/Finder创建一个新文件并在其中添加我的JSON来摆脱它们。

内容是否正常?您的
内存流必须以a开头。要处理BOM,请使用
StreamReader
,如中所示,而不是
Encoding.UTF8.GetString()
。事实上,我认为这是一个重复。如果你同意,我将关闭它。为什么要投否决票?