で解析しています。プログラミングにはかなり新しいですが、もっと深く検討しています。私は最近、JSONでAPIシステムを使用するWebサイト用のWinFormプログラムを作成するプロジェクトに参加し始めました。JSON APIをC#
以前はAPIを使用したことがありませんでした。どのように動作するのかよく分かりませんが、数分間見た後、私はその要点を持っているようです。私が得られないことは、C#でJSONを正確に解析することです。
少しGoogle検索の後に this linkが見つかりました。そして、私はそれを(このコードで)いくらか働かせました。私が行われ、取り扱わ1ページを解析しているよう
static void Main(string[] args)
{
WebClient c = new WebClient();
var vLogin = c.DownloadString("https://www.openraid.us/index.php/api/login/username/password");
//Returns string
//{"status":1,"error":null,"token":"250-1336515541-c48d354d96e06d488d1a2530071ef07c9532da26"}
//Token = random, no decisive length*/
JObject o = JObject.Parse(vLogin);
Console.WriteLine("Login Status: " + o["status"]);
String sToken = "" + o["token"];
Console.WriteLine(sToken);
Console.WriteLine("");
//Breaks after this
var myRaids = c.DownloadString("https://www.openraid.us/index.php/api/myraids/"+sToken);
JObject r = JObject.Parse(myRaids); //error occurs here
String sEventId = "" + r["event_id"];
Console.WriteLine("Event ID: " + sEventId);
Console.ReadLine();
}
だから私には見えますが、私は2番目に移動するとき、私はこのエラーを取得します。
JsonReaderからJObjectを読み取る際にエラーが発生しました。現在のJsonReaderアイテムはオブジェクトではありません:StartArray。パス1行目1の位置に設定してください。
私の質問は、1ページ以上のJSONの呼び出しやJSONの各セクションを分割する最も簡単な方法C#の文字列にそのようなstatus
、error
、およびtoken
などのオブジェクト(、?
2番目の要求は有効なJSONを返していません。返されたデータがあなたが思うものであることを確認しましたか? –
トークンは決して同じではありませんが、24時間有効です。私は手動でブラウザでAPIを開き、[this](http://pastebin.com/3anJMwsZ)を返しました。だから私には有効なJSONのようですが、最後に 'sToken'という文字列をダウンロードする呼び出しにエラーがある可能性があります。 – Cistoran
機能的には、コードは正常です。また、あなたが提供したjsonの応答が有効であるようです。 DownloadString()の呼び出しによって何か他のものが返される可能性はありますか?正気のために、そのメソッド呼び出しから返されるものを解析せずに正確に出力してみてください。 –