亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將包含具有固定模式的值數組的對象反序列化為強類型數據類?

如何將包含具有固定模式的值數組的對象反序列化為強類型數據類?

白衣非少年 2019-07-25 15:01:56
如何將包含具有固定模式的值數組的對象反序列化為強類型數據類?我在查找以特定格式反序列化某些JSON數據的干凈(盡可能)方法時遇到了一些麻煩。我想將數據反序列化為強類型數據對象類,關于此的具體細節非常靈活。以下是數據的示例:{     "timestamp": 1473730993,     "total_players": 945,     "max_score": 8961474,     "players": {             "Player1Username": [             121,             "somestring",             679900,             5,             4497,             "anotherString",             "thirdString",             "fourthString",             123,             22,             "YetAnotherString"],         "Player2Username": [             886,             "stillAstring",             1677,             1,             9876,             "alwaysAstring",             "thirdString",             "fourthString",             876,             77,             "string"]         }}我不確定的具體部分是:球員的集合會被視為字典嗎?用戶名可以作為鍵,但是值會讓我失望,因為它將是字符串和整數值的混合集合。玩家完全由未命名的值組成。我幾乎總是使用已命名屬性和值的JSON數據(例如,最頂層的timestamp,total_players等)假設我有一個這樣的頂級課程:public class ScoreboardResults{     public int timestamp { get; set; }     public int total_players { get; set; }     public int max_score { get; set; }     public List<Player> players { get; set; }}鑒于它基本上是用戶名作為鍵的鍵/值,并且值是混合整數和字符串的集合,Player對象會是什么樣子?每個玩家元素的數據總是以相同的順序,所以我知道集合中的第一個值是他們的UniqueID,第二個值是玩家描述等。我希望玩家類是這樣的:public class Player{     public string Username { get; set; }     public int UniqueID { get; set; }     public string PlayerDescription { get; set; }     ....     ....     .... Following this pattern for all of the values in each player element    ....     ....}我確信使用JSON.NET這是一個非常簡單的事情,這就是為什么我想避免我對如何實現這一點的任何想法。我想出的將是不優雅的,并且在序列化過程中可能在某種程度上容易出錯。編輯以下是使用snow_FFFFFF建議的過去作為JSON類時生成的類:public class Rootobject{     public int timestamp { get; set; }     public int total_players { get; set; }     public int max_score { get; set; }     public Players players { get; set; }}public class Players{     public object[] Player1Username { get; set; }     public object[] Player2Username { get; set; }}我不清楚的是如何將“players”元素中的JSON數據反序列化為List,其中Player1Username是Player對象上的簡單字符串屬性。至于混合字符串和整數的集合,我相信我可以將它們放到Player對象的各個屬性中而不會出現問題。
查看完整描述

3 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

一個好的入門方法是讓visual studio根據JSON生成你的類。打開一個空白的類文件,然后轉到EDIT - > PASTE SPECIAL - > PASTE JSON As CLASSES。

這將生成一個包含必要類的文件,以序列化/反序列化您的JSON。


查看完整回答
反對 回復 2019-07-25
  • 3 回答
  • 0 關注
  • 469 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號