Utilisation de JSON (JavaScript Object Notation) (application Windows Runtime en C++, C# ou Visual Basic)

Applies to Windows and Windows Phone

Objectif

Analysez les valeurs, les chaînes, les objets et les tableaux à partir d’un texte JSON (JavaScript Object Notation) ou sérialisez les types valeur en texte JSON à l’aide de fonctionnalités de l’espace de noms Windows.Data.Json.

JSON est un format texte d’échange de données ouvert (voir le document RFC 4627). Il est indépendant de la plateforme et propose un large éventail d’implémentations. Les données mises en forme selon la norme JSON sont légères et peuvent être analysées au moyen d’implémentations JavaScript avec une incroyable facilité. Puisqu’il s’agit principalement d’un format de données, le format JSON peut être utilisé dans pratiquement tout scénario dans lequel les applications doivent échanger ou stocker des informations structurées sous forme de texte.

Les fonctionnalités suivantes peuvent être utilisées dans une application Windows Runtime pour récupérer du texte au format JSON à partir d’un serveur HTTP, ou pour envoyer du texte au format JSON à un serveur HTTP.

Parsing JSON and serializing data into JSON

Les sections suivantes montrent comment analyser le texte JSON pour obtenir des valeurs de type nombre, chaîne, objet et tableau. Vous verrez ensuite comment représenter chacune de ces valeurs en objets gérables ou accepter des valeurs, les convertir en objets et les sérialiser en texte JSON.

Objects

Désérialisez un objet contenu dans du texte JSON en objet JsonObject et récupérez les valeurs nommées qu’il contient.


JsonValue jsonValue = JsonValue.Parse("{\"Width\": 800, \"Height\": 600, \"Title\": \"View from 15th Floor\", \"IDs\": [116, 943, 234, 38793]}");
double width = jsonValue.GetObject().GetNamedNumber("Width");
double height = jsonValue.GetObject().GetNamedNumber("Height");
string title = jsonValue.GetObject().GetNamedString("Title");
JsonArray ids = jsonValue.GetObject().GetNamedArray("IDs");


Créez un objet JsonObject et remplissez-le avec de nouvelles paires nom/JsonValue à l’aide de la méthode JsonObject::Insert. Une fois que vous avez terminé, appelez la méthode JsonObject::Stringify pour sérialiser l’objet JsonObject en tant que texte JSON.


JsonObject jsonObject = new JsonObject();
jsonObject["Width"] = JsonValue.CreateNumberValue(800);
jsonObject["Height"] = JsonValue.CreateNumberValue(600);
jsonObject["Title"] = JsonValue.CreateStringValue("View from 15th Floor");
jsonObject["IDs"] = JsonValue.Parse("[116, 943, 234, 38793]");
string jsonString = jsonObject.Stringify();


Arrays

Désérialisez un tableau contenu dans du texte JSON en tableau JsonArray et récupérez les valeurs indexées qu’il contient.


JsonValue jsonValue = JsonValue.Parse("[116, 3.14159, true, \"abc\"]");
double element1 = jsonValue.GetArray().GetNumberAt(0);
double element2 = jsonValue.GetArray().GetNumberAt(1);
bool element3 = jsonValue.GetArray().GetBooleanAt(2);
string element4 = jsonValue.GetArray().GetStringAt(3);


Vous pouvez également récupérer les valeurs contenues dans un tableau JsonArray à l’aide de la méthode GetAt. Dans l’exemple suivant, chaque valeur indexée fait l’objet d’une instruction switch case, la propriété ValueType exprimée dans chaque valeur JsonValue déterminant la méthode spécifique utilisée pour récupérer la valeur.


JsonValue jsonValue = JsonValue.Parse("[116, 3.14159, true, \"abc\"]");
int arraySize = jsonValue.GetArray().Count;
for (int i = 0; i < arraySize; i++)
{
    IJsonValue element = jsonValue.GetArray()[i];
    switch (element.ValueType)
    {
       case JsonValueType.Number:
           double numberValue = element.GetNumber();
           break;
       // ...
    }
}


Créez un objet JsonArray et remplissez-le avec des objets JsonValue à l’aide de la méthode JsonArray::Append. Une fois que vous avez terminé, appelez la méthode JsonArray::Stringify pour sérialiser l’objet JsonArray en tant que texte JSON.


JsonArray jsonArray = new JsonArray();
jsonArray.Add(JsonValue.CreateNumberValue(116));
jsonArray.Add(JsonValue.CreateNumberValue(3.14159));
jsonArray.Add(JsonValue.CreateBooleanValue(true));
jsonArray.Add(JsonValue.CreateStringValue("abc"));
string jsonString = jsonArray.Stringify();


Numbers

Analysez une valeur de nombre contenue dans du texte JSON et récupérez le nombre de l’objet JsonValue résultant à l’aide de la méthode JsonValue::GetNumber.



JsonValue jsonValue = JsonValue.Parse("5");
double numberValue = jsonValue.GetNumber();


Pour sérialiser une valeur de nombre en tant que texte JSON, créez un objet JsonValue et affectez-lui la valeur désirée à l’aide de la méthode JsonValue::CreateNumberValue.


JsonValue jsonValue = JsonValue.CreateNumberValue(5);
string jsonString = jsonValue.Stringify();


Strings

Analysez une valeur de chaîne contenue dans du texte JSON et récupérez la chaîne de l’objet JsonValue résultant à l’aide de la méthode JsonValue::GetString.


JsonValue jsonValue = JsonValue.Parse("\"test string\"");
string stringValue = jsonValue.GetString();


Pour sérialiser une valeur de chaîne en tant que texte JSON, créez un objet JsonValue et affectez-lui la valeur désirée à l’aide de la méthode JsonValue::CreateStringValue.


JsonValue jsonValue = JsonValue.CreateStringValue("test string");
string jsonString = jsonValue.Stringify();


Rubriques associées

Autres ressources
Analyser les chaînes JSON dans les composants Windows Runtime
Référence
Kit de développement logiciel (SDK)  REST C++
JsonArray
JsonObject
JsonValue
Windows.Data.Json
Windows.Web.Http
Windows.Web.Http.HttpClient
XML HTTP Extended Request (IXMLHttpRequest2)
Exemples
Exemple JSON

 

 

Afficher:
© 2015 Microsoft