2013-07-31 27 views
9

sto usando JSON.net per decodificare una stringa JSON e trovo questo errore:JSON decodifica: token imprevisto: StartArray

Exception in 'Newtonsoft.Json.JsonReaderException' en Newtonsoft.Json.dll

Información adicional: Error reading string. Unexpected token: StartArray. Path 'mentions', line 3, position 3.

La stringa JSON è qualcosa di simile:

{ 
"mentions": 
    [ 
     { 
      "id":"1234", 
      "alert_id":123, 
      "title":"Bla bla bla", 
      "url":"http:\/\/www.example.com\/", 
      "unique_id":"123", 
      "published_at":"2013-07-30T11:26:36.92131100+00:00", 
      "created_at":"2013-07-30T11:27:08.0+00:00", 
      "updated_at":"2013-07-30T11:27:09.0+00:00", 
      "favorite":false, 
      "trashed":false, 
      "trashed_set_by_user":false, 
      "read":false, 
      "tone":0, 
      "tone_score":0.14732, 
      "relevance_score":1, 
      "source_type":"forums", 
      "source_name":"xxx", 
      "source_url":"http:\/\/example.com\/", 
      "language_code":"es", 
      "tasks":[], 
      "logs":[], 
      "children":[], 
      "picture_url":"https:\/\/example.com\/example.jpg" 
     }, 
     { 
      "id":"1235", 
      "alert_id":123, 
      "title":"Bla bla bla", 
      "url":"http:\/\/www.example.com\/", 
      "unique_id":"124", 
      "published_at":"2013-07-30T11:26:36.92131100+00:00", 
      "created_at":"2013-07-30T11:27:08.0+00:00", 
      "updated_at":"2013-07-30T11:27:09.0+00:00", 
      "favorite":false, 
      "trashed":false, 
      "trashed_set_by_user":false, 
      "read":false, 
      "tone":0, 
      "tone_score":0.14732, 
      "relevance_score":1, 
      "source_type":"forums", 
      "source_name":"xxx", 
      "source_url":"http:\/\/example.com\/", 
      "language_code":"es", 
      "tasks":[], 
      "logs":[], 
      "children":[], 
      "picture_url":"https:\/\/example.com\/example.jpg" 
     } 
    ], 
"recently_reenabled":false 
} 

e sguardi come il problema è in terza linea dove il '[' inizia la serie di citazioni, ho visto che questo errore è più o meno comune ma non ha trovato una soluzione.

Questo è il mio codice:

Dim result As New Dictionary(Of String, String) 
    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer 
    Dim jsonString As String 

    jsonString = txtJSON.Text 

    result = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString) 

Aiuto?

risposta

12

Sembra che tu stia tentando di deserializzare il tuo JSON in un Dictionary(Of String, String). Tuttavia, chiaramente il valore di mentions non è un String; è una matrice di oggetti. Potresti provare a deserializzare in uno Dictionary(Of String, Object).