簡體   English   中英

將對象轉換為字符串

[英]Converting object to string

這是我的對象的內容:

-       tree    {ItemTree}  ItemTree
        id  "0" string
        im0 null    string
    -       item    Count = 1   System.Collections.Generic.List<ItemTree>
    -       [0] {ItemTree}  ItemTree
            id  "F_1"   string
            im0 "something.gif" string
    +       item    Count = 16  System.Collections.Generic.List<ItemTree>
                 parentId   "0" string
                 text   "someName"  string
  +                  Raw View       
                 parentId   null    string
                 text   ""  string

而且我是動態構建的,因此更大。

它是此類的一個對象:

public class ItemTree
{
    public String id { get; set; }

    public String text { get; set; }

    public List<ItemTree> item { get; set; }

    public string im0 { get; set; }

    public String parentId { get; set; }
}

因此,類ItemTree具有一個屬性,該屬性本身就是ItemTree對象的列表。

我想將其轉換為字符串。 當我做:

tree.ToString()

我只會得到:

        tree.ToString() "ItemTree"  string

但是我想將整個樹結構轉換為字符串。 這個怎么做?

您需要在類中重寫 ToString()方法。

創建自定義類或結構時,應重寫ToString方法,以便將有關類型的信息提供給客戶端代碼。

您可以使用XmlSerializer將對象序列化為XML。

您需要重寫ToString方法並在其中打印樹的表示形式

public class ItemTree
{
   public override string ToString()
   {
      return "Tree " + id +....
   }
}

否則,您將始終看到類名是基於基礎ToString()的結果

您可以重寫類ItemTreeToString方法

或者也許您可以嘗試使用json-net進行序列化

string json = JsonConvert.SerializeObject(tree);

如果重寫ToString方法,則其他實現將被其他調用ToString的代碼使用,這僅僅是因為它是一種標准方法(從Object繼承)。

(可選)您可以實現新方法。

無論哪種方式,為了避免手動更新方法,都可以使用Json.Net生成一個字符串,如下所示:

string str = JsonConvert.SerializeObject(someObject);

這是文檔中的示例:

Product product = new Product();

product.Name = "Apple";
product.ExpiryDate = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };

string output = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "ExpiryDate": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);

Nuget軟件包: http ://nuget.org/packages/Newtonsoft.Json/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM