2017-02-16 5 views
0

私はasp.netコアを介してmvc web apiを構築しています。しかし、要求に応じてjsonボディを逆シリアル化できないことは不思議です。MVC-APIに<string>をリストする入力jsonをデシリアライズできませんでした

ターゲット・オブジェクト要求に転記JSONは次のようである

public class Status 
{ 
    public string Content {get; set;} 
    public string Publisher {get; set;} 
    public List<string> Tags {get; set;} 
} 

以下のように:

{ 
    "content":"this is my baby dog", 
    "publisher":"someone" 
    "tags":[ "tag1", "tag2" ] 
} 

コントローラにおけるAPIメソッドである:

[HttpPost] 
public IActionResult Publish([FromBody] Status status) 
{ 
    // status should be deserialized now 
} 

試験、ステータスは常にnullです。しかし、タグリストを持たないjsonを投稿すると、ステータスを正しくデシリアライズすることができます。だからここの失敗の理由はリストによって引き起こされたようだ。しかし、特別な設定をせずにデシリアライズすることは可能でしょうか?

+1

どのようにJSONを投稿していますか?コードを表示できますか? – WillC

+2

は、問題を再現するために使用できる[mcve]を提供します。投稿の無効なjsonが質問の入力ミスではないことを確認します。 – Nkosi

答えて

5

あなたが渡しているJSONデータに問題があることを願っています。投稿の入力ミスであれば私を許してください。 "tags"の前にカンマ,が見つかりません。そのため、JSONが無効になります。

修正:

{ 
    "content":"this is my baby dog", 
    "publisher":"someone", 
    "tags":[ "tag1", "tag2" ] 
} 
+1

あなたは正しいです!私は周りのテストを続けたが、それに気付かなかった。どうもありがとうございます! – hula100

+0

あなたもお手伝いします。 –

0
{ 
    "content":"this is my baby dog", 
    "publisher":"someone", 
    "tags":[ {"tag1":"tag1"}, {"tag2":"tag2"} ] 
} 
+2

あなたの答えにいくつかの説明を含めると助けになります。ありがとう! – itsols

関連する問題