2017-12-19 19 views
-1

私はlightbuzzライブラリを使用していますが、Kinect 2.0でキャプチャされた画像のデータを持つ "BodyWrapper"というメソッドがあります。私はそのデータをファイルに保存したい。オブジェクトからJSON形式のファイルにデータを保存する方法は?

Iは_captureBodyの内容が画像に示されている Private BodyWrapper _captureBody;

を使用しています。そのコンテンツをファイルに保存して、そのデータが必要なときに再び使用できるようにします。

私は.TXT/.json/.csvファイルにそれを保存しようとしたが、私は作成した後、それらのファイル内では何も得なかった、.jsonファイルに保存しながら、私はエラーを得た:

「することはできません任意のオブジェクトまたは文字列を持つ必要があるため、Jsonファイルに保存します。 "

誰でもこの問題を解決するのに役立ちますか?どんな助けもありがとう。詳細なし

Content of _captureBody BodyWrapper

+2

あなたがこのデータをファイルに保存するために書いたコードを共有してもよろしいですか? –

+0

保存する前にオブジェクトをシリアル化していますか? – picossi

+0

JavaScriptSerializer()。デシリアライズ –

答えて

1

私ができる最善のは、一般的な例です。私はJSONをシリアライズ/デシリアライズするためのJSON.Netの大ファンです。 JSON.Netの下のNugetで簡単に見つけることができます。また、Newtonsoft.Jsonというステートメントを使用しています(下の例を参照)。

using System; 
using System.Collections.Generic; 
using System.IO; 
using Newtonsoft.Json; 

namespace StackOverflow 
{ 
    class Program 
    { 
     public static void Main() 
     { 
      var exampleData = new ExampleClass 
      { 
       Property1 = "Bob", 
       Property2 = 2, 
       Property3 = DateTime.Today, 
       Property4 = new List<SubExampleClass> 
       { 
        new SubExampleClass 
        { 
         Property5 = "Something" 
        }, 
        new SubExampleClass 
        { 
         Property5 = "Something Else" 
        } 
       } 
      }; 
      var jsonData = JsonConvert.SerializeObject(exampleData); 

      const string testFile = @"c:\temp\example.json"; 

      File.WriteAllText(testFile,jsonData); 
     } 
    } 

    public class ExampleClass 
    { 
     public string Property1 { get; set; } 
     public int Property2 { get; set; } 
     public DateTime Property3 { get; set; } 
     public List<SubExampleClass> Property4 { get; set; } 
    } 

    public class SubExampleClass 
    { 
     public string Property5 { get; set; } 
    } 
} 

これは、簡単に後で戻ってオブジェクトに読み取ることができるために

{ 
    "Property1":"Bob", 
    "Property2":2, 
    "Property3":"2017-12-19T00:00:00-05:00", 
    "Property4":[ 
     { 
     "Property5":"Something" 
     }, 
     { 
     "Property5":"Something Else" 
     } 
    ] 
} 

の形式のファイルを書き込みます。何かのように

const string testFile = @"c:\temp\example.json";  
var testData = File.ReadAllText(testFile); 
var jsonData = JsonConvert.DeserializeObject<ExampleClass>(testData); 
+0

'Newtonsoft.Json'をどこから得るべきかについては、おそらく言及するべきです。 – nvoigt

+0

十分に公正で、それを答えに加えてください。 – gilliduck

関連する問題