1

JSONデータを取得しようとしていますが、エラーが発生します。

値の解析中に予期しない文字が検出されました:。パス''、行0、位置0。

私はNet4.5とJSON.NetFrameworkを使用していますここに私のコード

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

そして、私のコードJSONデータビュー(Webサービス) http://sv1.volcanosoft.com/test/index.php?area=ho-chi-minh このサイト形式index.phpUTF-8とphpファイルのヘッダー

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

1 に答える 1

2

ダウンロードされた文字列は、JSON.NETパーサーが(正しく)理解できない2バイト順マーク(U + FEFF)で始まります。

ダウンロードした文字列に2つのBOMが含まれているのは、サービスが送信しているデータに3つのBOMが含まれているためです。最初の1つはUTF-8エンコーディングによって自動的に削除されますが、他の2つは残ります。

BOMは、使用した文字セットを保存できないファイルで役立ちます。ただし、ヘッダーで使用されている文字セットを送信しているため、BOMを送信する必要はまったくありません。そしてそれらのうちの3つを送ることは確かに間違っています。

これはPHPファイルのBOMが原因であると思われるので、おそらくそこから削除する必要があります。

于 2013-01-06T16:06:58.613 に答える