0

私は C# でコーディングし、Json オブジェクトをシリアル化するのは初めてです。

Json.net を使用して、json オブジェクト ("filename.json") として保存されたファイルを読み込もうとしています。

以下は、それをロードするために使用しようとしているコードです。Jsonオブジェクトをロードする最良の方法についてここを見回しましたが、これはコンセンサスのようです。ロードしようとしているオブジェクトは、クラスの後半で定義されています。http://json2csharp.com/ツールを使用して、Json ファイルからクラスを作成しました。

List<DashboardList> dashboardList = null;
        DashboardList db = new DashboardList();
        try
        {
            StreamReader sr = new StreamReader(FileLoc);
            string jsonString = sr.ReadToEnd();
            db = JsonConvert.DeserializeObject<DashboardList>(jsonString);

Json オブジェクトは次のとおりです。

{
  "DashboardList": {
"Dashboard": {
  "id": "1",
  "title": "Executive Dashboard",
  "description": "Generic Dashboard",
  "allowableMemberTypes": "",
  "Pages": {
    "Page": [

Json の残りの部分は非常に長く、おそらく重要ではありません。

コードを実行すると、null フィールドを持つ Dashboard オブジェクトが取得されます。

編集:

 public class Dashboard
    {
        public string id { get; set; }
        public string title { get; set; }
        public string description { get; set; }
        public string allowableMemberTypes { get; set; }
        public Pages Pages { get; set; }
    }

    public class DashboardList
    {
        public Dashboard Dashboard { get; set; }
    }    
4

1 に答える 1

0

後世のために:

        RootObject ro = new RootObject();
         try
        {

            StreamReader sr = new StreamReader(FileLoc);
            string jsonString = sr.ReadToEnd();
            JavaScriptSerializer ser = new JavaScriptSerializer();
            ro = ser.Deserialize<RootObject>(jsonString);


       }

.net 4.0 で system.web.extensions への参照を追加する必要があります。これはプログラム ファイル (x86) > 参照アセンブリ > フレームワーク > system.web.extensions.dll にあります。通常の 4.0 だけを使用していることを確認する必要があります。フレームワークは 4.0 クライアントではありません

于 2013-09-04T16:56:53.420 に答える