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

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

從具有父/子關(guān)系的 C# 數(shù)據(jù)集動(dòng)態(tài)創(chuàng)建 Json

從具有父/子關(guān)系的 C# 數(shù)據(jù)集動(dòng)態(tài)創(chuàng)建 Json

C#
繁花不似錦 2022-07-23 17:42:00
我想編寫一個(gè)簡(jiǎn)單的應(yīng)用程序,從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)并將其格式化為 Json 文件。問題是,我從中獲取數(shù)據(jù)的視圖應(yīng)該是可變的。這意味著無法從根類序列化 Json。此外,我需要確保表是否有父/子連接,這也被描述了。在下面的代碼中,我創(chuàng)建了一個(gè)數(shù)據(jù)集,讓您了解我的意思。        static void Main(string[] args)    {        DataSet dsSet = new DataSet("OrderManagement");        DataTable tCustumer = new DataTable("Custumer");        DataTable tOrder = new DataTable("Order");        tCustumer.Columns.Add("CustumerId");        tCustumer.Columns.Add("Name");        tOrder.Columns.Add("OrderId");        tOrder.Columns.Add("CustumerId");        tOrder.Columns.Add("Article");        tCustumer.Rows.Add("1", "Chris");        tCustumer.Rows.Add("2", "Ronja");        tCustumer.Rows.Add("3", "Thomas");        tOrder.Rows.Add("1", "1", "chocolate");        tOrder.Rows.Add("2", "1", "apples");        tOrder.Rows.Add("3", "2", "dogfood");        tOrder.Rows.Add("4", "3", "keyboard");        tOrder.Rows.Add("4", "3", "tomatos");        tOrder.Rows.Add("4", "3", "green tea");        dsSet.Tables.Add(tCustumer);        dsSet.Tables.Add(tOrder);        dsSet.Relations.Add(            "RelationCustumerOrder",            dsSet.Tables["Custumer"].Columns["CustumerId"],            dsSet.Tables["Order"].Columns["CustumerId"], false            );        dsSet.AcceptChanges();        JsonSerializerSettings settings = new JsonSerializerSettings();        settings.TypeNameHandling = TypeNameHandling.All;        string text = JsonConvert.SerializeObject(dsSet, Formatting.Indented, settings);    }這是我希望它輸出的 Json:{"Custumer": [{  "CustumerId": "1",  "Name": "Chris"    "Order": [    {      "OrderId": "1",      "CustumerId": "1",      "Article": "chocolate"    },    {      "OrderId": "2",      "CustumerId": "1",      "Article": "apples"    },    ]},{  "CustumerId": "2",  "Name": "Ronja"    "Order": [    {      "OrderId": "3",      "CustumerId": "2",      "Article": "dogfood"    }    ]},{  "CustumerId": "3",  "Name": "Thomas"    "Order": [    {      "OrderId": "4",      "CustumerId": "3",      "Article": "keyboard"    },
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

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

您可以通過幾個(gè)步驟完成此操作。


第 1 步:將 Relation.Nested 屬性設(shè)置為 True。


dsSet.Relations.Add(

    "RelationCustumerOrder",

    dsSet.Tables["Custumer"].Columns["CustumerId"],

    dsSet.Tables["Order"].Columns["CustumerId"]

    );

dsSet.Relations[0].Nested = true;  

第 2 步:轉(zhuǎn)換為 Xml。


StringWriter sw = new StringWriter();

dsSet.WriteXml(sw);

string xmlString = sw.ToString();

第 3 步:序列化為 Json 以獲得最終結(jié)果


XmlDocument doc = new XmlDocument();

doc.LoadXml(xmlString);

JsonSerializerSettings settings = new JsonSerializerSettings();

settings.TypeNameHandling = TypeNameHandling.All;


string jsonResult = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.Indented);

樣本的最終輸出將是


{

  "OrderManagement": {

    "Custumer": [

      {

        "CustumerId": "1",

        "Name": "Chris",

        "Order": [

          {

            "OrderId": "1",

            "CustumerId": "1",

            "Article": "chocolate"

          },

          {

            "OrderId": "2",

            "CustumerId": "1",

            "Article": "apples"

          }

        ]

      },

      {

        "CustumerId": "2",

        "Name": "Ronja",

        "Order": {

          "OrderId": "3",

          "CustumerId": "2",

          "Article": "dogfood"

        }

      },

      {

        "CustumerId": "3",

        "Name": "Thomas",

        "Order": [

          {

            "OrderId": "4",

            "CustumerId": "3",

            "Article": "keyboard"

          },

          {

            "OrderId": "4",

            "CustumerId": "3",

            "Article": "tomatos"

          },

          {

            "OrderId": "4",

            "CustumerId": "3",

            "Article": "green tea"

          }

        ]

      }

    ]

  }

}


查看完整回答
反對(duì) 回復(fù) 2022-07-23
  • 1 回答
  • 0 關(guān)注
  • 193 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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