0
我有一個自定義的數據字符串,我從來沒有使用過。它看起來與JSON類似,但它有一個獨特的結構,我無法解決如何正確反序列化。自定義字符串反序列化
這裏是展示什麼我處理的一個簡單的模擬結構的示例串:
description="
has_table=TRUE
scale=1.0
apply_scale=FALSE
custom_units=1
style{
0{
name="TestName1
description="
color=-1006632961
size=0.5
adaptive=TRUE
}
1{
name="TestName2
description="
color=-1
size=0.75
adaptive=TRUE
}
2{
name="TestName3
description="
color=-1006632354
size=1.5
adaptive=FALSE
}
size_table{
0=0.0
1=0.1
2=0.2
3=0.25
10=0.35
13=0.5
17=0.75
20=1.0
21=1.25
22=1.5
}
我一直在手動滾動我自己的類爲止。上面的字符串最終將反序列化到以下類中:
public class ExampleStyleList
{
public string Description {get; set;}
public bool HasTable {get; set;}
public double Scale {get; set;}
public bool ApplyScale {get; set;}
public int CustomUnits {get; set;}
public IList<double> Sizes {get; set;}
protected IList<ExampleStyle> InnerStyles {get; set;}
}
public class ExampleStyle
{
public string Name {get; set;}
public string Description {get; set;}
public System.Drawing.Color Color {get; set;}
public double Size {get; set;}
public bool Adaptive {get; set;}
}
現在我手動反序列化一切到我的類;一次讀一行,尋找括號,建立字典,尋找事物的靜態名稱。這非常醜陋,並且效率不高,更不用說可能會超級脆弱。我覺得我會先從這種奇怪的格式轉爲使用XML,然後我才能使用XMLSerializer,但我真的很空虛。
添加你的類結構,我也會創建一個size_table類,因爲它會將你的尺寸鏈接到一個ID,而不是ILIST的雙打 – Schuere