Uso di JSON (JavaScript Object Notation) (app Windows Runtime scritta in C++, C# or Visual Basic)

Applies to Windows and Windows Phone

Scopo

Analizza valori, stringhe, oggetti e matrici di un testo JavaScript Object Notation (JSON) o serializza tipi di valori in un testo JSON con le funzionalità dello spazio dei nomi Windows.Data.Json.

JSON è un formato di scambio dati aperto basato su testo (vedi RFC 4627). È indipendente dalla piattaforma e consente una vasta gamma di implementazioni. I dati formattati secondo lo standard JSON sono molto leggeri e possono essere analizzati dalle implementazioni di JavaScript con grandissima facilità. Dato che JSON è in primo luogo un formato di dati, può essere usato praticamente in tutte le situazioni in cui le applicazioni devono scambiare o archiviare informazioni in formato testo.

È possibile usare le funzionalità seguenti in un'app Windows Runtime per recuperare testo contenente JSON da un server HTTP o inviare testo contenente JSON a un server HTTP.

Parsing JSON and serializing data into JSON

Le sezioni seguenti mostrano come analizzare testo JSON per valori numerici, stringhe, oggetti e matrici e rappresentare ognuno di essi come un oggetto gestibile oppure convertirli in oggetti e serializzarli in JSON.

Objects

Deserializza un oggetto da testo JSON in un oggetto JsonObject e recupera i valori denominati che contiene.


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");


Crea un nuovo oggetto JsonObject e popolalo con nuove coppie nome/JsonValue usando il metodo JsonObject::Insert. Al termine, chiama JsonObject::Stringify per serializzare JsonObject come testo 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

Deserializza una matrice da testo JSON in un oggetto JsonArray e recupera i valori indicizzati che contiene.


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);


In alternativa, i valori contenuti in un oggetto JsonArray possono essere recuperati con il metodo GetAt. Nell'esempio seguente ogni valore indicizzato è sottoposto a un'istruzione di cambio maiuscole/minuscole, la proprietà ValueType espressa in ogni JsonValue che determina il metodo specifico usato per recuperare il valore.


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;
       // ...
    }
}


Crea un nuovo oggetto JsonArray e popolalo con oggetti JsonValue usando il metodo JsonArray::Append. Al termine, chiama JsonArray::Stringify per serializzare JsonArray come testo 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

Analizza un valore numerico dal testo JSON e recupera il numero dall'oggetto JsonValue risultante usando il metodo JsonValue::GetNumber.



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


Per serializzare un valore numerico come testo JSON, crea un nuovo oggetto JsonValue e assegna il valore desiderato con il metodo JsonValue::CreateNumberValue.


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


Strings

Analizza un valore stringa dal testo JSON e recupera la stringa dall'oggetto JsonValue risultante usando il metodo JsonValue::GetString.


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


Per serializzare un valore stringa come testo JSON, crea un nuovo oggetto JsonValue e assegna il valore desiderato con il metodo JsonValue::CreateStringValue.


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


Argomenti correlati

Altre risorse
Analisi di stringhe JSON in componenti Windows Runtime
Riferimenti
C++ REST SDK
JsonArray
JsonObject
JsonValue
Windows.Data.Json
Windows.Web.Http
Windows.Web.Http.HttpClient
Richiesta estesa HTTP XML (IXMLHttpRequest2)
Esempi
Esempio di Json

 

 

Mostra:
© 2015 Microsoft