1

我正在尝试获取 JSON 数据但出现错误。

解析值时遇到意外字符: 。路径 '',第 0 行,第 0 位置。

我正在使用 Net 4.5 和 JSON.Net Framework 这是我的代码

WebClient net = new WebClient();
string str = await net.DownloadStringTaskAsync(url);
JObject o = JObject.Parse(str); // ERROR Here

而我的代码 JSON Data View on Webservice http://sv1.volcanosoft.com/test/index.php?area=ho-chi-minh 这个站点格式 index.php UTF-8 和 php 文件头

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

1 回答 1

2

下载的字符串以两个字节顺序标记(U+FEFF) 开头,JSON.NET 解析器(正确)无法理解。

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

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

我相信这是由您的 PHP 文件中的 BOM 引起的,因此您可能应该从那里删除它们。

于 2013-01-06T16:06:58.613 回答