第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將多個(gè)列表合并為一個(gè) json 字符串

將多個(gè)列表合并為一個(gè) json 字符串

C#
HUWWW 2022-12-04 13:06:24
我需要通過 json 將數(shù)據(jù)從我的游戲服務(wù)器發(fā)送到客戶端,并從數(shù)據(jù)庫中獲取大量數(shù)據(jù)并發(fā)送它會(huì)產(chǎn)生問題目前我正在調(diào)用數(shù)據(jù)庫以獲取數(shù)據(jù)時(shí)創(chuàng)建多個(gè)列表,現(xiàn)在我被卡住了,因?yàn)槲矣袛?shù)據(jù)但在多個(gè)列表中,我不知道如何返回?cái)?shù)據(jù)。我覺得我應(yīng)該在這里將它轉(zhuǎn)換為 JSON,然后返回 json 字符串,但這一切真的很混亂public static void GetLobbyList() {        string query = "SELECT * FROM que";        MySqlCommand cmd = new MySqlCommand(query, MySQL.mySQLSettings.connection);        MySqlDataReader reader = cmd.ExecuteReader();        List<int> ids = new List<int>();        List<string> uids = new List<string>();        List<int> bets = new List<int>();        List<string> games = new List<string>();        while (reader.Read()) {            ids.Add((int)reader["id"]);            uids.Add((string)reader["uid"]);            bets.Add((int)reader["bet"]);            games.Add((string)reader["game"]);        }        reader.Close();    }所以在這里我從數(shù)據(jù)庫中讀取信息,由于缺乏經(jīng)驗(yàn),我將每個(gè)數(shù)據(jù)點(diǎn)添加到列表中(這真的很難看,我知道必須有更好的方法)所以基本上我Grab the data->Parse to json->Send string to client如果可以假設(shè)返回的數(shù)據(jù)來自一個(gè)表編號(hào) | uid | 打賭 | 游戲我想在 json 中返回一個(gè)數(shù)組,看起來像{ {“id”:1,“uid”:“erjfh4982y9hf”,“賭注”:3,“游戲”:“貪吃蛇”} {“id”:2,“uid”:“gsegt34t”,“賭注”:2 , "游戲" : "貪吃蛇" } }我不太熟悉 json 及其工作原理,但我知道這是將大數(shù)據(jù)包從我的服務(wù)器發(fā)送到我的客戶端的唯一方法,因?yàn)樵诎l(fā)送之前所有內(nèi)容都必須轉(zhuǎn)換為字節(jié),而我的框架不會(huì)支持將列表轉(zhuǎn)換為字節(jié)
查看完整描述

2 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

為了實(shí)現(xiàn)您的目標(biāo),您應(yīng)該創(chuàng)建一個(gè)類來保存您從數(shù)據(jù)庫中檢索到的數(shù)據(jù)。在我的例子中,我調(diào)用了它GameObject,它的定義如下。


public class GameObject

{

    public int Id { get; set; }

    public string Uid { get; set; }

    public int Bet { get; set; }

    public string Game { get; set; }

}

從數(shù)據(jù)庫中檢索信息后,您需要運(yùn)行類似于以下的代碼。


var items = new List<GameObject>();


while (reader.Read())

{

    items.Add(new GameObject

    {

        Id = (int)reader["id"],

        Uid = (string)reader["uid"],

        Bet = (int)reader["bet"],

        Game = (string)reader["game"]

    });

}


// Return the jsonPacket which will contain all the items in json format.

var jsonPacket = JsonConvert.SerializeObject(items);

為了使其正常工作,您需要從 nuget 中引用 Newtonsoft.Json 庫。打開你的包管理器控制臺(tái)并輸入以下命令:Install-Package Newtonsoft.Json它會(huì)為你設(shè)置它。在我們代碼的頂部,您需要using Newtonsoft.Json;能夠使用庫中的類來序列化為 Json。在接收端,您可以將字符串傳遞給JsonConvert.DeserializeObject<T>(),您將取回對(duì)象列表。


查看完整回答
反對(duì) 回復(fù) 2022-12-04
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

您可以使用objects 和匿名類型的列表。還有一個(gè) JSON 序列化程序,System.Web.Script.Serialization.JavaScriptSerializer如果您將System.Web.Extensions程序集添加到您的引用中,則包含該序列化程序。


List<object> list = new List<object>();


while (reader.Read()) {

    list.Add(new { id =  (int)reader["id"],

                   uid = (string)reader["uid"],

                   bet = (int)reader["bet"],

                   game = (string)reader["game"], });


}


string json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(list);


查看完整回答
反對(duì) 回復(fù) 2022-12-04
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)