我正在为我的项目使用lightbuzz库。我试图从“BodyWrapper _captureBody”获取数据并将iy保存在文件中。 “_captureBody”的内容是here ...我试图序列化该对象,然后我尝试复制.Json文件中的内容,但这里是我得到的error。它说我不能序列化或淡化它。 以下是代码的一小部分:
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);
}
}
您可以使用此链接“https://vitruviuskinect.com/documentation/windows/html/e07dd042-e9f1-c9b8-2e94-c20576115f3d.htm”作为参考
答案 0 :(得分:0)
关节是具有关键JointType的字典。正如您在异常中看到的那样,键需要是字符串或对象。如果你创建自己的类系统(使用body作为参数的构造函数),我认为它会更好,然后确保它是可序列化的。这意味着您需要更改该属性。 根据自己的经验,我试图远离字典和JSON。也许将它转换为具有Custom Joint类的类,该类具有枚举的额外属性。
答案 1 :(得分:0)
我现在已经解决了这个问题。 这就是我做的,
我使用方法ToJSON来序列化Kinect Body对象。
string json = body.ToJSON(); //The body contains all the Kinect generated data.
然后我使用以下方法保存了文件:
File.SaveAllText(json, "path-of-file.json");
如果上面的语法不起作用,那么你也可以用来保存.json文件:
File.WriteAllText(path-of-file,json);
最后我再次阅读JSON文件:
BodyWrapper body = File.ReadAllText("path-of-file.json").ToBodyWrapper();
感谢您的帮助......: - )