2017-12-20 4 views
0

Ich benutze Lightbuzz-Bibliothek für mein Projekt. Ich versuche, die Daten von "BodyWrapper _captureBody" zu erhalten und iy in einer Datei zu speichern. Der Inhalt von "_captureBody" ist here ... Ich habe versucht, das Objekt zu serialisieren und dann habe ich versucht, den Inhalt in der .JSON-Datei zu kopieren, aber hier ist die error ich habe.Ich sage, dass ich es nicht serialisieren oder entsalzen kann. Hier ist der kleine Teil des Codes:Wie kann ich die in Kinect 2.0 gesammelten Körperdaten speichern und in einer JSON-Datei speichern?

if (_mode == ViewMode.Capture && _currentBody != null) 
     { 
      _capturedBody = _currentBody.ToBodyWrapper(); //capture the data of the current body coming from kinect. 
      if (i < 1) 
      { 
       capturebody[i] = _capturedBody; 
       i++; 
      } 
      if (i == 1) //i want to save the data only once 
      { 

       string json = new 
       JavaScriptSerializer().Serialize(_capturedBody); 

       //write string to file 
       System.IO.File.WriteAllText(@"C:\path.json", json); 
      } 
     } 

Sie diesen Link „https://vitruviuskinect.com/documentation/windows/html/e07dd042-e9f1-c9b8-2e94-c20576115f3d.htm“ als Referenz verwenden können

Antwort

0

Gelenke ist ein Wörterbuch mit den wichtigsten JointType. Wie Sie in der Ausnahme sehen können, müssen die Schlüssel string oder object sein. Ich denke, es ist besser, wenn Sie Ihr eigenes Klassensystem (mit Konstruktor mit dem Körper als Argument) erstellen und dann sicherstellen, dass es serialisierbar ist. Dies bedeutet, dass Sie diese Eigenschaft ändern müssen. Aus eigener Erfahrung versuche ich mich von Wörterbüchern und JSON fernzuhalten. Vielleicht konvertieren Sie es in eine Klasse mit einer benutzerdefinierten Joint-Klasse, die eine zusätzliche Eigenschaft mit der Enumeration hat.

0

Ich habe dieses Problem jetzt selbst gelöst. hier ist, was ich getan habe,

Ich verwendete die Methode ToJSON, um ein Kinect Body Objekt zu serialisieren.

string json = body.ToJSON(); //The body contains all the Kinect generated data. 

Dann gespeichert ich die Datei mit:

File.SaveAllText(json, "path-of-file.json"); 

wenn die obige Syntax nicht funktioniert, dann können Sie auch .json Datei speichern verwenden:

File.WriteAllText(path-of-file,json); 

Und schließlich lese die JSON-Datei erneut Ich benutzte:

Danke für die Hilfe trotzdem ... :-)

Verwandte Themen