解析JSON C#错误

解析JSON C#错误,c#,json,json.net,C#,Json,Json.net,我正在尝试获取JSON数据,但获取错误 分析值时遇到意外字符:。路径“”,第行 0,位置0 我使用的是NET4.5和JSON.Net框架 这是我的密码 WebClient net = new WebClient(); string str = await net.DownloadStringTaskAsync(url); JObject o = JObject.Parse(str); // ERROR Here 我的代码和Webservice上的JSON数据视图 此站点的格式为index.ph

我正在尝试获取JSON数据,但获取错误

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

我使用的是NET4.5和JSON.Net框架 这是我的密码

WebClient net = new WebClient();
string str = await net.DownloadStringTaskAsync(url);
JObject o = JObject.Parse(str); // ERROR Here
我的代码和Webservice上的JSON数据视图 此站点的格式为index.php UTF-8和php文件头

header('Content-Type:application/json; charset=utf-8');
echo '{"item":';
echo json_encode($data);
echo '}';

下载的字符串以两个(U+FEFF)开头,JSON.NET解析器(正确地)不理解这一点

下载的字符串包含两个BOM表的原因是您的服务发送的数据包含其中的三个BOM表。第一个通过UTF-8编码自动删除,但另两个保留

BOM表对于无法存储所用字符集的文件很有用。但是您正在发送标头中使用的字符集,因此根本不需要发送BOM。发送其中三个肯定是不正确的


我相信这是由PHP文件中的BOM造成的,所以您可能应该将它们从PHP文件中删除。

我认为
str
的内容与您发布的内容不同。我猜你得到了一个错误或重定向页面的Html内容。这是str中的JSON数据在你调试它时还是在下载字符串之前?你发布的JSON字符串似乎是有效的saysok。我在调试时发布了JSON数据,您可以在不下载字符串的情况下尝试此操作吗:JObject o=JObject.Parse(“…类似于此处发布的JSON数据…”);非常感谢。完成了:D。但是如何转换
Tiđuđề Áo khoá;碳氮ữ mà;u da bò到Unicode?