J'essaie de lire une réponse d'un serveur que je reçois lorsque j'envoie une demande POST. Visualisant le violoniste, il dit que c'est une réponse JSON. Comment puis-je la décoder en une chaîne normale en utilisant Winforms C # avec de préférence aucune API externe. Je peux fournir des résultats supplémentaires de code/violon si vous en avez besoin.
Les images du violoneux et du charabia:
Le charabia est venu de mes tentatives de lecture du flux dans le code ci-dessous:
Stream sw = requirejs.GetRequestStream();
sw.Write(logBytes, 0, logBytes.Length);
sw.Close();
response = (HttpWebResponse)requirejs.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
MessageBox.Show(sr.ReadToEnd());
Comme mentionné dans les commentaires, Newtonsoft.Json est vraiment une bonne bibliothèque et mérite d'être utilisé - très léger.
Si vous voulez vraiment utiliser uniquement les bibliothèques .NET de Microsoft, pensez également à System.Web.Script.Serialization.JavaScriptSerializer.
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObject = serializer.DeserializeObject(sr.ReadToEnd());
Supposons (vous n'avez pas encore clarifié) que vous devez réellement décoder le flux, car A) récupérer un flux de texte distant est bien documenté , et B) vous ne pouvez pas faire grand chose avec un flux JSON non décodé.
Votre meilleure solution consiste à mettre en œuvre System.Web.Helpers.Json
:
using System.Web.Helpers.Json
...
var jsonObj = Json.Decode(jsonStream);