當我在此消息MakeAction手動發送它的工作原理和消息框彈出:JsonConvert.DeserializeObject從PubNub消息
string json = @"{'action':'turncompleted', 'messageID':'123123123', 'playerID':'100000067174580', 'round':1, 'values':[{'longitude':21.09375, 'latitude':24.527134822598}, {'longitude':1.40625, 'latitude':23.885837699862}]}";
public void MakeAction(string message)
{
Poker_Server_v4_0.Action a = JsonConvert.DeserializeObject<Poker_Server_v4_0.Action>(message);
System.Windows.Forms.MessageBox.Show(a.action + a.messageID);
}
但是當我使用的消息從PubNub它不工作:
static void DisplaySubscribeReturnMessage(string result)
{
//Receives the message from Pubnub takes care of the Action.
MessageToAction MTA = new MessageToAction();
MTA.MakeAction(result);
}
從PubNub消息differes從我手動創建的一點點:
[{\"action\":\"turncompleted\",\"messageID\":\"123123123\",\"playerID\":\"100000067174580\",\"round\":1,\"answers\":[{\"longitude\":21.09375,\"latitude\":24.527134822598},{\"longitude\":1.40625,\"latitude\":23.885837699862}]},\"13926740640746402\",\"chinese-jefecito\"]
我試圖刪除括號和斜槓文本,但隨後「價值」值的斜線也取代了。
我想知道我在做什麼錯在這裏?
這裏是動作類以及:
class Action
{
[JsonProperty("action")]
public string action { get; set; }
[JsonProperty("messageID")]
public string messageID { get; set; }
[JsonProperty("gameID")]
public string gameID { get; set; }
[JsonProperty("invitorFacebookID")]
public string invitorFacebookID { get; set; }
[JsonProperty("gametype")]
public string gametype { get; set; }
[JsonProperty("numberOfPlayers")]
public string numberOfPlayers { get; set; }
//public List<string> longitude { get; set; }
//public List<string> latitude { get; set; }
//public List<string> values { get; set; }
[JsonProperty("players")]
public List<Players> players { get; set; }
//Should be empty and removed!
[JsonProperty("values")]
public List<Value> values { get; set; }
public Action() { }
}
class Players
{
//Players
[JsonProperty("playerID")]
public string playerID { get; set; }
[JsonProperty("facebookID")]
public string facebookID { get; set; }
}
class Value
{
//Answers
[JsonProperty("longitude")]
public string longitude {get; set;}
[JsonProperty("latitude")]
public string latitude { get; set; }
}
由於提前, 托馬斯
感謝您的協助。我將它改爲Poker_Server_v4_0.Action [] a = JsonConvert.DeserializeObject(message);但它仍然不起作用。我在公共Action(){}上有一個斷點,當我使用Action []而不是Action時觸發它,然後它停止。它不會給我一個錯誤信息或任何東西,它只是停止。 –
Jefecito
@ user2524586好吧,我注意到其他奇怪的東西。我剛剛更新了從頭開始編寫的代碼。我不得不改變你的json片段,因爲它不是有效的json。 – evanmcdonnal
我其實注意到了。我將檢查PubNub C#示例以查看它們是否有推薦的方式來檢索郵件。再一次,非常感謝。 – Jefecito