C# 分析值时遇到意外字符:?。路径'';,第0行,位置0
我有这个JSON文件: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
[
{
"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()
。事实上,我认为这是一个重复。如果你同意,我将关闭它。为什么要投否决票?