2017-02-16 41 views
0

我正在通過asp.net核心構建mvc web api。但發現它很奇怪,不能在請求中反序列化json主體。無法反序列化輸入json以在MVC-API中列出<string>

目標對象,如下

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

JSON的張貼在請求是這樣的:

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

在控制器中的API的方法是:

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

當測試時,狀態始終爲空。但是,如果我發佈沒有標籤列表的JSON,狀態可以成功反序列化。所以看起來這裏的失敗原因是由List引起的。但它應該能夠在沒有任何特殊配置的情況下反序列化,對嗎?

+1

你是如何發佈JSON?你能顯示代碼嗎? – WillC

+2

提供了一個[mcve],可用於重現您的問題。確認post中無效的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