JsonToDataset

<< 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.

DatasetConversionOptions

 

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.

IDataSet

 

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.

IDataSet

 

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.

IDataSet

 

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'