2017-03-29 3 views
0

Lecture d'un document JSON "source.json" par flux de fichiers mais comment obtenir les données du fichier json? Après cela, j'essaie d'ajouter les données json nouvellement éditées sur le même fichier.Filestream et recevoir les données de la lecture

Dim pathSource As String = "Server.MapPath('~/source.json')" 
Try 
    Using fs As FileStream = New FileStream(pathSource, _ 
     FileMode.Open, FileAccess.Read) 
      Dim bytes() As Byte = New Byte((fsSource.Length) - 1) {} 
      Dim numBytesToRead As Integer = CType(fsSource.Length,Integer) 
      Dim numBytesRead As Integer = 0 

      While (numBytesToRead > 0) 
       Dim n As Integer = fsSource.Read(bytes, numBytesRead, _ 
        numBytesToRead) 
       If (n = 0) Then 
        Exit While 
       End If 
       numBytesRead = (numBytesRead + n) 
       numBytesToRead = (numBytesToRead - n) 

      End While 
     numBytesToRead = bytes.Length 
     Dim xmlBuilder = New StringBuilder() 
     fs.Seek(0, SeekOrigin.Begin) 
     Dim ms As New MemoryStream() 
     fs.CopyTo(ms) 
     xmlBuilder.Append(Encoding.UTF8.GetString(ms.ToArray())) 
     ms.Flush() 
     ms.Close() 
     '???How to access the data from the file "source.json" you just read in??? 

     'Edit the file "source.json" data 

     ?? How to put it into "bytesout" the edited data??? 

     Using fsAppend As FileStream = New FileStream(pathSource, _ 
      FileMode.Append, FileAccess.Write) 
      fsAppend.Write(bytesout, 0, numBytesToRead) 
     End Using 
    End Using 
Catch ioEx As FileNotFoundException 
    Console.WriteLine(ioEx.Message) 
End Try 
+3

J'éviterais de réinventer la roue comme ça et j'utiliserais simplement json.net: http://www.newtonsoft.com/json/ help/html/ReadJson.htm – mxmissile

+0

Je ne peux pas obtenir NewtonSoft le paquet donne une erreur. – losopha

+0

Ensuite, utilisez ['JavaScriptSerializer'] (https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx) ou [' DataContractJsonSerializer'] (https: // msdn. microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx). A quoi ressemble le JSON? – dbc

Répondre

1

J'ai été dans cette voie. Essayez de comprendre ce que vous avez mal fait avec newtonsoft. Les méthodes de sérialisation et de désérialisation sont assez faciles à utiliser. Vous n'avez qu'à créer un objet selon le format JSON et le désérialiseur va remplir automatiquement l'objet. Vous devez simplement déclarer les variables de la classe comme propriété publique nameofjsonobject en tant que