Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - splittare stringa complessa
Forum - C# / VB.NET - splittare stringa complessa

Avatar
mizar1 (Normal User)
Pro


Messaggi: 72
Iscritto: 09/11/2009

Segnala al moderatore
Postato alle 22:10
Giovedì, 15/05/2014
salve

ho una stringa un po complessa che dovrei splittare

sono riuscito con una serie di replace e di split consecutivi a pulire  la stringa e ricavare i valori
ma penso che non sia la strada migliore

esiste un metodo migliore
e' praticamente una stringa con dei valori nidificati che si presenta cosi'
ho creato delle righe di separazione per capire meglio dove intervenire ma la stringa e tutta unita
e ci sono descrizione del campo e valore separati da :

.

[{"codice":"1.114031573","numerolibri":1,"numeropagine":3,"capitoli":


[{"selection":176184,"capitolo":10,"datiinterni"
:{"paginebianche":[{"numero":40.0,"size":19.21},{"numero":38.0,"size":2.44},{"numero":34.0,"size":2.44}],"paginenere":[{"numero":55.0,"size":2.72},{"numero":60.0,"size":2.44},{"numero":70.0,"size":23.21}],"prezzo":[]}},


{"selection":65778,"capitolo":11,"datiinterni"
:{"paginebianche":[{"numero":1.11,"size":1342.9},{"numero":1.1,"size":4833.0},{"numero":1.09,"size":4904.21}],"paginenere":[{"numero":1.12,"size":23.47},{"numero":1.13,"size":515.5},{"numero":1.14,"size":2339.09}],"prezzo":[]}},


{"selection":58805,"capitolo":12,"datiinterni"
:{"paginebianche":[{"numero":10.5,"size":2.44},{"numero":10.0,"size":152.12},{"numero":9.8,"size":40.08}],"paginenere":[{"numero":12.0,"size":72.87},{"numero":13.0,"size":95.0},{"numero":13.5,"size":100.94}],"prezzo":[]}}]}]



avete qualche idea da suggerirmi

Ultima modifica effettuata da mizar1 il 15/05/2014 alle 22:10


Conto su di te per salvare una trota soffocata da una plastica idiota
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 22:56
Giovedì, 15/05/2014
Quelli sono (o almeno, mi sembrano proprio) dati in JSON: per parsarli ti consiglierei, invece che lavorare a mano sulle stringhe, di usare una libreria come questa http://json.codeplex.com/.


PM Quote
Avatar
mizar1 (Normal User)
Pro


Messaggi: 72
Iscritto: 09/11/2009

Segnala al moderatore
Postato alle 23:39
Giovedì, 15/05/2014
si hai ragione
e' la stringa restituita da una chiamata jason


Conto su di te per salvare una trota soffocata da una plastica idiota
PM Quote
Avatar
mizar1 (Normal User)
Pro


Messaggi: 72
Iscritto: 09/11/2009

Segnala al moderatore
Postato alle 19:28
Sabato, 17/05/2014
Testo quotato

Postato originariamente da mizar1:



[{"codice":"1.114031573","numerolibri":1,"numeropagine":3,"capitoli":


[{"selection":176184,"capitolo":10,"datiinterni"
:{"paginebianche":[{"numero":40.0,"size":19.21},{"numero":38.0,"size":2.44},{"numero":34.0,"size":2.44}],"paginenere":[{"numero":55.0,"size":2.72},{"numero":60.0,"size":2.44},{"numero":70.0,"size":23.21}],"prezzo":[]}},


{"selection":65778,"capitolo":11,"datiinterni"
:{"paginebianche":[{"numero":1.11,"size":1342.9},{"numero":1.1,"size":4833.0},{"numero":1.09,"size":4904.21}],"paginenere":[{"numero":1.12,"size":23.47},{"numero":1.13,"size":515.5},{"numero":1.14,"size":2339.09}],"prezzo":[]}},


{"selection":58805,"capitolo":12,"datiinterni"
:{"paginebianche":[{"numero":10.5,"size":2.44},{"numero":10.0,"size":152.12},{"numero":9.8,"size":40.08}],"paginenere":[{"numero":12.0,"size":72.87},{"numero":13.0,"size":95.0},{"numero":13.5,"size":100.94}],"prezzo":[]}}]}]






sto impazzendo
ho questo codice per i dati del primo livello non mi da errore quindi i campi li legge
ma se vedo Testobject1 e Testobject2 sono nothing

Public Class onelevel
        Public Property codice () As String
    End Class


    Public Class result
        Public Property codice As String
        Public Property numerolibri As String
        'Public Property capitoli () As String
    End Class

    Public Class capitoli
        Public Property selection As String
        Public Property capitolo As String
    End Class



    Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
        '   Dim Testobject As onelevel = Global.Newtonsoft.Json.JsonConvert.DeserializeObject(Of onelevel)(variabileglob10)
        Dim Testobject1 As result = Global.Newtonsoft.Json.JsonConvert.DeserializeObject(Of result)(variabileglob10)
        Dim Testobject2 As capitoli = Global.Newtonsoft.Json.JsonConvert.DeserializeObject(Of capitoli)(variabileglob10)


    End Sub


Conto su di te per salvare una trota soffocata da una plastica idiota
PM Quote