指定されたキャストが無効である無効なキャスト例外が発生します。この行には:Invalidcastexception JsonConvert.DeserializeObject
RootObject mountain = JsonConvert.DeserializeObject<RootObject>(json1);
documentationから、これは問題ありませんか?私はコンソールの出力がうまくいくのが分かりますか?
応答:[{ "Height_ft":2999.0、 "Height_m":914.0、 "ID": "C1"、 "緯度":57.588007、 "経度":-5.5233564、 "名前"、「Beinn Dearg」、 "湿度":0.81は、 "積雪":4.99、 "温度":あなたのJSONオブジェクトの配列であるように63.0}]
Spinner spinner = (Spinner)sender;
string urlmountain = "http://removed.azurewebsites.net/api/Mountains?name=";
JsonValue json1 = FetchMountain(urlmountain+string.Format("{0}", spinner.GetItemAtPosition(e.Position)));
//below.................................
RootObject mountain = JsonConvert.DeserializeObject<RootObject>(json1); //this line
string toast = mountain.Name;
Toast.MakeText(this, toast, ToastLength.Long).Show();
private JsonValue FetchMountain(string urlmountain)
{
// Create an HTTP web request using the URL:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(urlmountain));
request.ContentType = "application/json";
request.Method = "GET";
// Send the request to the server and wait for the response:
using (WebResponse response = request.GetResponse())
{
// Get a stream representation of the HTTP web response:
using (Stream stream = response.GetResponseStream())
{
// Use this stream to build a JSON document object:
JsonValue jsonDoc1 = JsonObject.Load(stream);
Console.Out.WriteLine("Response: {0}", jsonDoc1.ToString());
// Return the JSON document:
return jsonDoc1;
}
}
}
public class RootObject
{
public string ID { get; set; }
public double? Latitude { get; set; }
public double? Longitude { get; set; }
public string Name { get; set; }
public double? Height_m { get; set; }
public double? Height_ft { get; set; }
public double? temperature { get; set; }
public double? humidity { get; set; }
public double? snowCover { get; set; }
public override string ToString()
{
return Name;
}
}
質問に「RootObject」クラス定義を追加することはできますか?サンプルのAPI呼び出しも役立ちます。 –
一瞬。 –