J'ai ces données JSON que je reçois depuis mon service Web, le problème est maintenant que je cherche actuellement à récupérer les données hors support carré, car mes codes actuels ne peuvent que récupérer la météo code> données.
et chaque fois que j'essaie d'obtenir les données de c'est mon Code actuel J'essaie d'obtenir les données du support Curly coord code> il continue de me retourner la valeur 0. p>
Coord CODE>, mais il conserve de donner 0,00 Toute aide serait appréciée merci! P>
public partial class Book : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public class Result
{
public string id{ get; set; }
public string main{ get; set; }
public string description{ get; set; }
public string icon{ get; set; }
public decimal lon{ get; set; }
}
public class SearchList
{
public int resultCount;
public Result[] weather;
}
protected void Button1_Click(object sender, EventArgs e)
{
string searchTerm = TextBox1.Text;
var webRequest = (HttpWebRequest)WebRequest.Create
("http://samples.openweathermap.org/data/2.5/weather?id=2172797&appid=b6907d289e10d714a6e88b30761fae22");
var webResponse = (HttpWebResponse)webRequest.GetResponse();
if (webResponse.StatusCode == HttpStatusCode.OK)
{
JavaScriptSerializer json = new JavaScriptSerializer();
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string resString = sr.ReadToEnd();
SearchList list = json.Deserialize<SearchList>(resString);
GridView1.DataSource = list.weather;
GridView1.DataBind();
}
else
Label1.Text = "Invalid Response";
}
}
4 Réponses :
Vous n'avez pu récupérer que les données météorologiques car il a été défini dans le modèle d'objet.
Mettre à jour de cette façon, le Définition de la classe Code> Pour inclure les autres données souhaitées p>
JavasCriPTHtsérializer code> saura l'inclure lors de la désériorialisation du JSON. P> P>
Vos modèles sont incomplets. Vous pouvez utiliser JSONCSHARP pour générer des cours.
public class Coord { public double lon { get; set; } public double lat { get; set; } } public class Weather { public int id { get; set; } public string main { get; set; } public string description { get; set; } public string icon { get; set; } } public class SearchList { public Coord coord { get; set; } public List<Weather> weather { get; set; } public int resultCount; }
Lorsque j'ajoute votre code, il ne me montre toujours que les données météo code>. Suis-je toujours supposé juste le faire comme ça? Liste de la recherche de la recherche = JSON.Desérialize
Vous définissez la DataSource à la liste. Vous devez définir DataSource = liste, pour avoir des conditions météorologiques et des coordonnées.
Vous voulez dire comme ceci gridview1.datasource = liste; code> il me donne toujours une erreur
Source de données est un type non valide code>
@BestJeaniste basé sur vos réponses, cela ressemble à un XY problème . Vous devez clarifier dans la question initiale quel est le problème réel
@BestJeanist Comme indiqué par Nkosi, vous avez un problème différent maintenant. Dans la liste d'objets, vous avez votre objet de coord et votre liste de temps. C'était votre problème. Maintenant, vous devez adapter la liaison à afficher une liste de conditions météorologiques et un objet de type Coord.
@Brunocaceiro Comment puis-je faire ça?
Juste poser une question différente. Et fournir le code pour la grilleview1
Vous devez ajouter le modèle pour Vous devrez ajouter plus de modèles pour chaque type de données. Vous ne pouvez pas simplement accéder à Coord code>
list.coord.lon code> à partir de
list.weather.lon code> p> p>
Utilisez JOWJECT, vous pouvez extraire chaque jeton en utilisant
`Jobject.SelectToken("datayouwant")`.
Mise à jour
recherche de la recherche code> pour inclure les autres données souhaitées
@Nkosi Comment puis-je faire ça pouvez-vous me montrer?