2017-02-08 13 views
0

私は[FromBody]が私のクラスオブジェクトを使用したwebapiメソッドを1つ使用しました。 以下のように:jsonデータとクラスプロパティの一致

public HttpResponseMessage ProcessResource([FromBody]FileContent contentvalue) 
 
    {//some business logic 
 
    }

と以下の私は、クライアントマシンから送信しています私のJSON形式です:

以下

{"FileContent":{"ResourceStrings":[{"StringKey":"TestKey","StringID":1,"Value":"TestKey"},{"StringKey":"SampleKey","StringID":2,"Value":"Test key 1"},{"StringKey":"HomeKey","StringID":3,"Value":"Home DEV"},{"StringKey":"custom.WVF.ContactForm.Name","StringID":4,"Value":"NAME"},{"StringKey":"custom.CMS.MenuItem","StringID":5,"Value":"CMS.MenuItem"}]},}

は使用含むFileContentクラスです。

public class ResourceString 
 
{ 
 
    public string StringKey { get; set; } 
 
    /// <summary> 
 
    /// Gets or sets the StringKey 
 
    /// </summary> 
 
    /// <value> 
 
    /// StringKey 
 
    /// </value> 
 
    public int StringID { get; set; } 
 
    /// <summary> 
 
    /// Gets or sets the StringID 
 
    /// </summary> 
 
    /// <value> 
 
    /// StringID 
 
    /// </value> 
 
    public string Value { get; set; } 
 
    /// <summary> 
 
    /// Gets or sets the Value 
 
    /// </summary> 
 
    /// <value> 
 
    /// Value 
 
    /// </value> 
 
} 
 
/// <summary> 
 
/// Added RootObject new class to serialize and deserialize for resource string 
 
/// </summary> 
 
public class RootObject 
 
{ 
 
    /// <summary> 
 
    /// Gets or sets the list of ResourceString 
 
    /// </summary> 
 
    public List<ResourceString> ResourceStrings { get; set; } 
 
} 
 
public class FileContent 
 
{ 
 
    public List<ResourceString> ResourceStrings { get; set; } 
 
}

私はクライアントマシンからJSONデータを送信し、私のWeb APIメソッドをデバッグしていたときさて含むFileContentオブジェクトの値はnullです。

このメソッドのパラメータでjsonデータを取得するにはどうすればよいですか?

これで、Romaのソリューションを使用して、そのメソッドでjsonデータを取得できました。どのように私はそれが同じを得るためにデシリアライズ作るん

{"ResourceStrings":[{"StringKey":"TestKey","StringID":1,"Value":"TestKey"},{"StringKey":"SampleKey","StringID":2,"Value":"Test key 1"},{"StringKey":"HomeKey","StringID":3,"Value":"Home DEV"},{"StringKey":"custom.WVF.ContactForm.Name","StringID":4,"Value":"NAME"},{"StringKey":"custom.CMS.MenuItem","StringID":5,"Value":"CMS.MenuItem"}]}

: は、データを取得した後私は私が下記のように私のJSON形式を取得する必要があります再びResourceStringにそれをデシリアライズする必要が再び必要がありますか?

答えて

1

あなたRootObjectを行います

public class RootObject 
{ 
    public FileContent FileContent { get; set; } 
} 

とにあなたの行動を変更します。

public HttpResponseMessage ProcessResource([FromBody]RootObject obj) 
{ 
    //some business logic 
} 

OR

あなたはFileContentに解析したい場合は、あなたのJSONは次のようになります。

{"ResourceStrings":[{"StringKey":"TestKey","StringID":1,"Value":"TestKey"},{"StringKey":"SampleKey","StringID":2,"Value":"Test key 1"},{"StringKey":"HomeKey","StringID":3,"Value":"Home DEV"},{"StringKey":"custom.WVF.ContactForm.Name","StringID":4,"Value":"NAME"},{"StringKey":"custom.CMS.MenuItem","StringID":5,"Value":"CMS.MenuItem"}]} 
+0

こんにちは、こんにちは、お返事ありがとうございます。あなたのソリューションは正常に動作しました。私が直面している1つの小さな問題。私は上記の質問を更新しています。私にも返信してください。 – Vikash

+0

@Vikash、あなたの編集を見ましたが、あなたの問題についてもう少し詳しく説明できますか? –

+0

こんにちはRoma、後で問題を管理する方法はありますが、あなたのソリューションは私のために働いていました。あなたの答えをアップアップしています。ありがとうございました。 – Vikash

関連する問題