2017-11-09 16 views
0

JSONファイルをC#(VS 2017 Mac)のオブジェクトにインポートしようとしました。JSONファイルをC#オブジェクトにインポートする際に問題が発生しました。

私は、このJSONファイルの例があります。だから私はにインポートするオブジェクト型を作成するためにC#のライブラリを生成

{ 
    "subdomain": "mycompany", 
    "name": "MyCompany Inc", 
    "website": "https://www.mycompany.com", 
    "edition": "DIRECTORY", 
    "licensing": 
    { 
    "apps": 
    [ 
     "boxnet" 
    ] 
    }, 
    "admin": { 
    "profile": 
    { 
     "firstName": "John", 
     "lastName": "Smith", 
     "email": "[email protected]", 
     "login": "[email protected]", 
     "mobilePhone": null 
    }, 
    "credentials": 
    { 
     "password": 
     { 
     "value": "NotAPassword"}, 
     "recovery_question": 
     { 
      "question": "Best Solution", 
      "answer": "MyOne" 
     } 
     } 
    } 
    } 
} 

using System; 

namespace OrgCustom 
{ 
    using System; 
    using System.Net; 
    using System.Collections.Generic; 

    using Newtonsoft.Json; 

    public class Licensing 
    { 
     public List<string> apps { get; set; } 
    } 

    public class Profile 
    { 
     public string firstName { get; set; } 
     public string lastName { get; set; } 
     public string email { get; set; } 
     public string login { get; set; } 
     public object mobilePhone { get; set; } 
    } 

    public class Password 
    { 
     public string value { get; set; } 
    } 

    public class RecoveryQuestion 
    { 
     public string question { get; set; } 
     public string answer { get; set; } 
    } 

    public class Credentials 
    { 
     public Password password { get; set; } 
     public RecoveryQuestion recovery_question { get; set; } 
    } 

    public class Admin 
    { 
     public Profile profile { get; set; } 
     public Credentials credentials { get; set; } 
    } 

    public class Org 
    { 
     public string subdomain { get; set; } 
     public string name { get; set; } 
     public string website { get; set; } 
     public string edition { get; set; } 
     public Licensing licensing { get; set; } 
     public Admin admin { get; set; } 
    } 
} 

そしてそうに、私はインポートすることができるはずですNewtownsoft.Jsonライブラリを使用して、非常に簡単にファイルを作成できますか?

まあ、私のプログラムコードは次のとおりです。

using System; 
using System.IO; 
using System.Runtime.Serialization.Json; 
using RestSharp; 
using Newtonsoft.Json; 
using OrgCustom; 

namespace TestStart 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string JSONstring = File.ReadAllText("CreateOrgExample.json"); 

      OrgCustom.Org objOrg = JsonConvert.DeserializeObject<OrgCustom.Org>(JSONstring); 
      Console.WriteLine(objOrg.ToString()); 
     } 
    } 
} 

問題は、私はそれを実行したとき、私は有効ではありませんJsonConvertがタイプであるデシリアライズラインからライン上のメッセージを、取得することです与えられた文脈。

私はここで間違っていますか?私はC#MVAコースのJSON入門で見たそのラインと私はそれがうまくいくと信じていますか?事前に

おかげで、一見

QuietLeni

+2

私はVS2017のネットコア2でPC上でテストしています。 (最後の '}'を削除した後) – owairc

答えて

1

JSONの最後に余分な閉じ括弧が付いている問題があるようです。だから、解析中にエラーが発生する可能性があります。

+0

ありがとうございます - 私は十分なOCDではありません!私は同じことをした! – QuietLeni

0

私は構文エラーが表示されません。あなたは、アセンブリ参照をチェックしてからコンバートコールにドリルダウンするためにインテリセンスと組み合わせglobal::修飾子を使用します(しかし、再び、それは私には正しいよう。)かもしれません

を余談として、あなたのPasswordクラスがRecoveryQuestionプロパティを定義していません。 JSONスニペットにあります。

これは、Newtonsoftがあなたが定義した構造にJSONスニペットをデシリアライズするのを妨げません。

関連する問題