2017-07-21 5 views
0

Je suis en train de lire une chaîne JSON en mémoire et obtenir cette erreur non documentée msgJSON avec C# et Mono

$ mcs -r:FortnoxAPILibrary.dll -r:npgsql.dll -r:System.Data.dll -r:Newtonsoft.Json.dll Vouchers.cs 
Vouchers.cs(44,18): error CS0103: The name `JArray' does not exist in the current context 
Compilation failed: 1 error(s), 0 warnings 

Mon code est

var json = System.IO.File.ReadAllText("test.json"); 

var objects = JArray.Parse(json); // parse as array 
foreach(JObject root in objects) 
{ 
    foreach(KeyValuePair<String, JToken> app in root) 
    { 
     var appName = app.Key; 
     var description = (String)app.Value["Description"]; 
     var value = (String)app.Value["Value"]; 

     Console.WriteLine(appName); 
     Console.WriteLine(description); 
     Console.WriteLine(value); 
     Console.WriteLine("\n"); 
    } 
} 

Où est-il documenté comment cela devrait fonctionner ?

+0

Ici, il est documenté que, dans quel espace il devrait être: http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Linq_JArray.htm – Aby

Répondre

1

Vous êtes plus que probablement manquer une déclaration à l'aide.

using Newtonsoft.Json.Linq;

Chaque morceau de code C# que vous écrivez, sauf pour les types de base, exige une déclaration indiquant en utilisant toutes les dépendances.

Les bibliothèques C# ne documentent souvent pas les exigences d'instruction using pour un bloc de code. Peut-être un oubli, mais la plupart des utilisateurs utilisent un IDE, qui avertit de l'instruction manquante et offre des options pour les insérer automatiquement.

IDE Hints

+1

Oui, où est-ce MCVE? Il n'y en a pas. –

0

Il n'est pas documenté que je dois inclure cette ligne.

using Newtonsoft.Json; using Newtonsoft.Json.Linq;