Gast alexC++ Geschrieben 2. August 2010 Geschrieben 2. August 2010 Weiß einer wie man unter Json.NET Daten einliest? Gruß Zitieren
NerdonRails Geschrieben 2. August 2010 Geschrieben 2. August 2010 MVC: Controller-Action die ein Json-Result-Object zurückgibt ASP.NET: JsonTextWriter-Class, bekommt man bei: Json.NET Zitieren
Gast alexC++ Geschrieben 3. August 2010 Geschrieben 3. August 2010 Json-Daten einlesen, nicht schreiben. Es ist kein Beispiel für lesen vorhanden. //eine Json-Datei lesen //sFileName = @"/irgend/wo/Projects/testJson//Json_Daten/test_data.json"; StringReader rd = new StringReader(sFileName); rd.ReadToEnd(); JsonReader reader = new JsonTextReader(rd); txtV_Daten.Buffer.InsertAtCursor(reader.Read().ToString()); while(reader.Read()){ txtV_Daten.Buffer.InsertAtCursor(reader.TokenType.ToString()); txtV_Daten.Buffer.InsertAtCursor(reader.ValueType.ToString()); txtV_Daten.Buffer.InsertAtCursor(reader.Value.ToString()); } er liest nur leider nicht ! reader.Read().ToString() = false Zitieren
realgun Geschrieben 3. August 2010 Geschrieben 3. August 2010 Vielleicht liegts daran, dass der StringReader rd am Ende des Streams steht nachdem Du rd.ReadToEnd() aufgerufen hast (brauchst Du das da eigentlich?). Versuch doch mal die Position wieder auf 0 zu setzen bevor Du den JsonTextReader damit lesen lässt. Zitieren
Gast alexC++ Geschrieben 4. August 2010 Geschrieben 4. August 2010 string sFileName = @"/irgend/wo/Projects/JsonKonsole/JsonKonsole/Json-Daten/test-data.json"; using (StreamReader sr = new StreamReader(sFileName)) using (JsonReader reader = new JsonTextReader(sr)) { while(reader.Read()){ Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value); } } habe aus der grafischen anwendung eine konsolenanwendung gemacht und es funktioniert jetzt. weiß aber nicht warum es vorher nicht lief! gruß Zitieren
realgun Geschrieben 4. August 2010 Geschrieben 4. August 2010 Wahrscheinlich lag es am "ReadToEnd" Deines StringReaders. Damit wird der gesammte Inhalt des Streams gelesen und der Cursor ist natürlich auf der letzen Position. Den gleichen Reader übergibst Du dann an den JsonTextReader, der den StringReader benutzen soll um den Stream "Value"-weise einzulesen. Da der Cursor im StringReader aber schon am Ende ist, kann da nichts mehr eingelesen werden. Du kannst die Position des StringReader wieder auf "0" setzen (rd.Postion = 0;). In Deinem zweiten Beispiel verwendest Du kein "ReadToEnd()", also ist der Cursor des StringReaders immer noch am Anfang der Zeichenkette und kann dem JsonTextReader Zeichen zurückgeben. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.