<< Fare clic per visualizzazione il sommario >> Percorso: Il linguaggio OEL > Funzioni > JsonToDataset |
Converte una stringa in formato JSON in un dato strutturato.
Funzione
JsonToDataset(string json, DatasetConversionOptions datasetConversionOptions)
La funzione può essere utilizzata nelle seguenti modalità:
1) JsonToDataset(string json, DatasetConversionOptions datasetConversionOptions)
2) JsonToDataset(string json, IDataSet fieldMapping, IDataSet fieldRenaming, IDataSet valuesIfNull, bool disableNilHandling, bool preserveTypes)
Output |
||
Nome |
Descrizione |
Tipo |
returnValue |
Dato strutturato corrispondente alla stringa JSON indicata in input. |
DataSetValue |
Modalità 1)
JsonToDataset(string json, DatasetConversionOptions datasetConversionOptions)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
json |
Stringa contenente un testo in formato Json. |
String |
|
datasetConversionOptions |
Dato strutturato utile a definire le opzioni di conversione. |
|
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Dato strutturato corrispondente alla stringa JSON indicata in input. |
DataSetValue |
|
Modalità 2)
JsonToDataset(string json, IDataSet fieldMapping, IDataSet fieldRenaming, IDataSet valuesIfNull, bool disableNilHandling, bool preserveTypes)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
json |
Stringa contenente un testo in formato Json. |
String |
|
fieldMapping |
Dato strutturato utile a specificare quali campi del JSON devono essere riportati nel dato strutturato risultato indipendentemente dal livello della struttura. Ogni elemento del dato strutturato ha come chiave il nome dei campi del JSON da restituire al primo livello del dato strutturato e come valore vuoto o un eventuale nuovo nome che si vuole assegnare all'elemento al primo livello nel dato strutturato restituito. Se il nome del campo del JSON che si vuole estrarre è riportato in un percorso del JSON occorre specificare come chiave l'intero percorso del JSON con i nomi dei campi separati da ":" . E' possibile specificare valore null. |
|
|
fieldRenaming |
Dato strutturato utile a specificare come rinominare i campi del JSON nel dato strutturato risultato. Ogni elemento del dato strutturato fieldRenaming ha come chiave il nome del campo JSON e come valore il nuovo nome nel corrispondente dato strutturato restituito dal metodo. E' possibile assegnare a fieldRenaming valore null per non effettuare il rinomina dei campi. |
|
|
valuesIfNull |
Dato strutturato contenente i valori da assegnare ai campi specificati del JSON se il relativo valore è null. Ad esempio se valuesIfNull contiene due elementi: - valuesIfNull["first_name"] = "" - valuesIfNull["trim_user"] = false Il dato strutturato restituito avrà: - tutti i campi denominati "first_name" (a qualsiasi livello) valorizzati con "" invece di null - tutti i campi denominati "trim_user" (a qualsiasi livello) valorizzati con false invece di null. E' possibile specificare per valuesIfNull il valore null. |
|
|
disableNilHandling |
Indica se i valori {"@nil":"true"} devono essere convertiti in null. Se false i valori {"@nil":"true"} devono essere convertiti, altrimenti true. |
Boolean |
|
preserveTypes |
Indica se i tipi oggetto del JSON ("$types") devono generare strutture annidate nel dato strutturato. Se true, i tipi oggetto generano strutture annidate nel dato strutturato, altrimenti false. |
Boolean |
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Dato strutturato corrispondente alla stringa JSON indicata in input. |
DataSetValue |
|
Commenti
Restituisce |
Condizione |
Dato strutturato con tutti i campi del JSON |
Se fieldMapping risulta null o DataSet(). |
Dato strutturato con alcuni campi del JSON |
Se i valori di fieldMapping sono null o vuoti implica che il nome delle chiavi presenti nel dato strutturato non subirà modifiche. |
Dato strutturato in cui i nomi dei campi sono uguali a quelli della struttura JSON |
Se fieldRenaming è risulta null o vuoto. |
Dato strutturato in cui i nomi dei campi sono rinominati rispetto a quelli della struttura JSON |
Se fieldRenaming è valorizzato. Ad esempio se fieldRenaming è pari a Dataset('idpagina','NumeroPagina') , ogni campo del JSON denominato idpagina (indipendentemente dal livello di annidamento) sarà rinominato in NumeroPagina nel dato strutturato risultato. |
Esempio 1
Dato il seguente JSON
{"widget": {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}}
Si richiede la JsonToDataset con valore fieldMapping= DataSet() , fieldRenaming = DataSet('window','window_DS','alignment','alignment_DS') , valuesIfNull = DataSet(), disableNilHandling = false e preserveTypes= false.
il dato strutturato risultato che si ottiene è il seguente:
Dataset
Key: 'widget', Type: Dataset, Value:
Key: 'debug', Type: String, Value: 'on'
Key: 'window_DS', Type: Dataset, Value:
Key: 'title', Type: String, Value: 'Sample Konfabulator Widget'
Key: 'name', Type: String, Value: 'main_window'
Key: 'width', Type: String, Value: '500'
Key: 'height', Type: String, Value: '500'
Key: 'image', Type: Dataset, Value:
Key: 'src', Type: String, Value: 'Images/Sun.png'
Key: 'name', Type: String, Value: 'sun1'
Key: 'hOffset', Type: String, Value: '250'
Key: 'vOffset', Type: String, Value: '250'
Key: 'alignment_DS', Type: String, Value: 'center'
Key: 'text', Type: Dataset, Value:
Key: 'data', Type: String, Value: 'Click Here'
Key: 'size', Type: String, Value: '36'
Key: 'style', Type: String, Value: 'bold'
Key: 'name', Type: String, Value: 'text1'
Key: 'hOffset', Type: String, Value: '250'
Key: 'vOffset', Type: String, Value: '100'
Key: 'alignment_DS', Type: String, Value: 'center'
Key: 'onMouseUp', Type: String, Value: 'sun1.opacity = (sun1.opacity / 100) * 90;'
Esempio 2
Dato il seguente JSON
{"widget": {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}}
Si richiede la JsonToDataset con valore fieldMapping= DataSet('widget:window','') , fieldRenaming = DataSet() , valuesIfNull = DataSet(), disableNilHandling = false e preserveTypes= false.
il dato strutturato risultato che si ottiene è il seguente:
Dataset
Key: 'window', Type: Dataset, Value:
Key: 'title', Type: String, Value: 'Sample Konfabulator Widget'
Key: 'name', Type: String, Value: 'main_window'
Key: 'width', Type: String, Value: '500'
Key: 'height', Type: String, Value: '500'