2016-06-09 39 views
0
[ 
["Received", "by luna.mailgun.net with SMTP mgrt 8734663311733; Fri, 03 May 2013 18:26:27 +0000"], 
["Content-Type", ["multipart/alternative", {"boundary": "eb663d73ae0a4d6c9153cc0aec8b7520"}]], 
["Mime-Version", "1.0"], ["Subject", "Test bounces webhook"], 
["From", "Bob <[email protected]>"], 
["To", "Alice <[email protected]>"], 
["Message-Id", "<[email protected]>"], 
["List-Unsubscribe", "<mailto:u+na6tmy3ege4tgnldmyytqojqmfsdembyme3tmy3cha4wcndbgaydqyrgoi6wsz[email protected]rs19930.mailgun.org>"], 
["X-Mailgun-Sid", "WyIwNzI5MCIsICJhbGljZUBleGFtcGxlLmNvbSIsICI2Il0="], 
["X-Mailgun-Variables", "{\"my_var_1\": \"Mailgun Variable #1\", \"my-var-2\": \"awesome\"}"], 
["Date", "Fri, 03 May 2013 18:26:27 +0000"], ["Sender", "[email protected]"] 
] 

我把这个作为邮件头来自mailgun。我需要将这个头解析成json。我试过JObject.Parse(message_headers)JArray.Parse(message_headers)。但它不起作用。我无法解析由MailGun发送给Json的消息头

当我删除["X-Mailgun-Variables", "{\"my_var_1\": \"Mailgun Variable #1\", \"my-var-2\": \"awesome\"}"]这似乎工作。

请让我知道我做错了什么。

+0

没错。你发布的行不是JSON。 – esskar

+1

'JArray.Parse()'适合我。请参阅https://dotnetfiddle.net/eLpjof。如果你事先不了解JSON的结构,[JToken.Parse()'](http://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JToken_Parse.htm)是最安全的。 – dbc

回答

1

问题是Mailgun标头不是JSON对象。我遇到了同样的问题,我解决它的方式是解析出我需要的值并手动将它们转换为JSON对象。