2016-07-10 13 views
0

私が現在取り組んでいるアプリケーションは、すべてjsonを返すという要求がたくさんあるため、返す予定の各リクエストのプロパティを保持するクラスを作成するのが適切でしょうそのクラスのプロパティに変換できるjson?Jsonをオブジェクトにデシリアライズする

たとえば、私は2つのリクエストを持っています.1つは名字、姓と職種を返し、もう1つはビジネス名、ビジネス拠点、ビジネス郵便番号を返すリクエストです。

class BusinessRetrieval { 
    public string BusinessLocation{ get; set; } 
    public string BusinessPostCode { get; set; } 
} 

class EmployeeRetrieval { 
    public string Firstname { get; set; } 
    public string Surname { get; set;} 
    public string Postcode { get; set; } 
} 

だから今、私は要求が行われた後送り返さしようとしているプロパティを概説2クラスがあり、今はOKだけで行うことです:私は聞いてるのよ何

BusinessRetrieval business = (BusinessRetrieval)JsonConvert.DeserializeObject(businessResponse, typeof(BusinessRetrieval)); 
EmployeeRetrieval employee = (EmployeeRetrieval)JsonConvert.DeserializeObject(employeeResponse, typeof(EmployeeRetrieval)); 

ここでこれをやり遂げることはOKですか?私はたくさんのリクエスト(10-15)を扱うつもりです。それぞれのレスポンスが返すプロパティの概要を示すクラスを作成する予定です。これが構造を整える良い方法であるかのように感じます。

これは問題ありませんか?

+0

承認を求めていますか?あなたは、あなたの心配が何であるかについてより具体的に考えるべきです。 – Gigi

+0

はい。私はこれがOKであるかどうかを知りたい。 –

+0

「OK」は主観的です。参照してください:http://stackoverflow.com/help/dont-ask – Gigi

答えて

0

私はそれが大丈夫だと思うので、問題なくどのような方法でもそのオブジェクトを渡すことができるようになると思います。

+0

それは私が考えていたものです。あなたの入力をありがとう –

1

はい、コードタイプを安全にするためには、それを処理する唯一の合理的な方法です。 DeserializeObject以外の結果をあなたが選択したタイプにキャストすることはできませんが、例外がスローされます。 代わりに、DeserializeObjectの汎用バージョンを使用してください。

BusinessRetrieval business = JsonConvert.DeserializeObject<BusinessRetrieval>(businessResponse); 
EmployeeRetrieval employee = JsonConvert.DeserializeObject<EmployeeRetrieval>(employeeResponse); 
+0

ああ、これははるかに良いです。 元々私はやっていました: EmployeeRetrieval employee =(EmployeeRetrieval)JsonConvert.DeserializeObject(employeeResponse、typeof(EmployeeRetrieval))); –

関連する問題