J'essaie de traiter une structure JSON avec json.net et rencontré des problèmes:
Mes cours ne fonctionnent pas quand un JSON contient un tableau sans nom. P>
EXEMPLE JSON : strong> p> classe pour json.net:le > Mon code: strong> p> var myObject = JsonConvert.DeserializeObject<CAKR.Graph.Measurement>(MyJsonString);
4 Réponses :
Vous êtes presque là. Il suffit d'utiliser au lieu de p>
C'est ce que je pensais au début. Mais l'objet de mesure continue d'être "null" pour une raison quelconque.
Tout d'abord, vous n'avez pas vraiment besoin de nommer toutes les propriétés de votre classe code> code> exactement comme elles sont présentées dans Une autre chose est si vous souhaitez désérialiser une partie de votre Le code suivant devrait aider: p> myjsRonstring code>. Vous pouvez utiliser
JSONProperty CODE> Attribut et décorer vos propriétés de classe.
myjsRonstring Extrexer uniquement la matrice de
Mesure < / Code>, vous devez fournir un type T correct pour
la méthode de désérialisze code> (dans votre cas, il est
iEnumerable
Merci jevgenij! Cela m'a vraiment eu sur quelque chose.
Alors je me suis battu depuis un certain temps pour que cela fonctionne. Cependant, à la fin de la solution n'est pas si difficile. Espérons que, avec ma réponse, je vais aider certaines personnes.
La solution dans mon cas était p>
{"producthetail": [ p>
using Project.Details; //<-- this is my ViewModel namespace name using Newtonsoft.Json; using System.IO; using System.Threading.Tasks; namespace WebApplication.Controllers { public class JSONController : Controller { // // GET: /JSON/ public async Task<ActionResult> Index() { StreamReader file = new StreamReader("C:\\Users\\YourName\\etc\\File.json"); String json = await file.ReadToEndAsync(); var Project = JsonConvert.DeserializeObject<RootObject>(json); return View(); } } }
Je veux obtenir la valeur clé et la valeur ... Est-ce que cela fait cela? Merci
J'utilise une méthode très simple pour désérialiser les matrices JSON. Au lieu d'utiliser une tonne de classes publiques avec de nombreuses variables publiques. Je viens d'utiliser un objet dynamique et passez JSON comme objet à jsonconvert.deserializeObject.
Voici comment cela fonctionnerait. Dis que j'ai le JSON suivant: p> je peux passer la chaîne json à la jsonconvert.deserializeObject. P> puis en utilisant L'élément dynamique qui vient de créer je peux collecter des données JSON comme. P> Si vous avez un tableau à l'intérieur de votre JSON, vous pouvez utiliser P> using (var client = new WebClient())
{
string json = client.DownloadString(url);
string output = json.ToString();
dynamic outputArray = JsonConvert.DeserializeObject(output);
string _age = outputArray.age;
string appID = outputArray.data.app_id;
Debug.Write(outputArray.Something); //Just match value of json
}
mauvais exemple dès que votre JSON n'est pas un tableau, juste un objet
Voici un bon lien à utiliser à l'avenir pour valider si votre JSON est valide ou non JSON Lint
Ne devriez-vous pas travailler avec une catégorie code> code> pas un espace de noms code>
cakr.graph.Mesure code> n'est pas une classe
Dupliqué possible de ne peut pas désérialiser le tableau JSON dans le type - JSON.NET A >
@DJ KRAZE: Le JSON est valide, il n'y a pas de duplication et de "mesure" est une classe dans l'espace de noms "CAKR.GRAPH". THX pour vos commentaires quand même =)