Error parsing JSON valeurs dans ASP.NET MVC?
Je suis en train d'utiliser StackOverflow de l'API de recherche à des questions de recherche.
Je suis à l'aide de cette action à effectuer l'analyse :
public ActionResult StackExchange(string sq)
{
string url = "http://api.stackoverflow.com/1.1/search?intitle=" + sq + "&order=desc";
var client = new WebClient();
var response = client.DownloadString(new Uri(url));
JObject o = JObject.Parse(response);//ERROR
int total = (int)o["total"];
return View(total);
}
Voici le JSON url je suis en train d'analyser:
http://api.stackoverflow.com/1.1/search?intitle=asp.net%20custom%20404&order=desc
Je suis en train d'extraire les données suivantes:
`"total": 3` ,
`"question_timeline_url": "/questions/10868557/timeline",`
`"title": "Asp.net custom 404 not working using Intelligencia rewriter"`
Sa présentation d'erreur comme : Newtonsoft.Json.JsonReaderException: caractère Inattendu rencontré lors de l'analyse de la valeur: . Chemin d'accès ", la ligne 0, la position 0.
Ce qui peut être la raison de l'exception? J'ai utilisé la même méthode que précédemment, et il a bien fonctionné.
S'il vous plaît suggérer.
OriginalL'auteur Man8Blue | 2012-06-03
Vous devez vous connecter pour publier un commentaire.
Essayez la méthode suivante.
Utiliser NuGet et de référence de la JSON.NET package. Je vois que vous avez déjà fait.
Composer une demande et obtenir une réponse.
La réponse que vous recevez à partir de la Pile d'Échange de l'API est au format gzip! Vous devez d'abord décompresser avant de pouvoir lire la réponse JSON. C'est pourquoi vous recevez des exceptions.
Nous allons créer une méthode qui ne fait que cela. .NET nous offre la pratique GZipStream type à cet effet.
Maintenant, vous pouvez extraire les données JSON à partir de la réponse.
Maintenant, vous pouvez analyser les données renvoyées.
L'année dernière, j'ai écrit un billet de blog sur la façon de travailler avec la Pile d'Échange de version de l'API 1.1.
http://cgeers.com/2011/10/02/stack-exchange-api/
PS: je vous recommande d'utiliser la version 2.0 de l'API qui a été publié plus tôt cette année.
https://api.stackexchange.com/docs
Salut, j'ai essayé ce url = answers.yahooapis.com/AnswersService/V1/... et il a montré l'erreur...Le nombre magique dans GZip-tête n'est pas correcte. Je sais que c'est quelque chose à voir avec le format json. Mais comment faire pour régler ça?
OriginalL'auteur Christophe Geers
Ma première suppose que depuis JsonReader donne une exception à la ligne 0, la position 0 est que quelque chose a foiré avec l'encodage. Depuis la demande ci-dessus affiche les informations suivantes Content-Type tête dans les outils de développement chrome
Vous pouvez essayer de définir l'encodage WebClient utilise utf-8 via WebClient est Propriété de codage.
OriginalL'auteur saintedlama