[英]Deserialize Yaml into c# collection
我具有以下yaml結構:
TestPaySignService:
Test:
TestString:
settings-key: TestStringValue
types:
- type1
- type2
TestString2:
settings-key: TestStringValue2
types:
- type1
- type2
我想解析此Yaml,並將“ settings-key”和“ types”一起存儲在c#集合中,例如List,如下所示:
[
{
name: TestStringValue,
types: ["type1", "type2"]
},
{
name: TestStringValue2,
types: ["type1", "type2"]
}
]
我已經遵循了follwin問題並嘗試了接受的答案的代碼,但是目前看來它已經過時了: 反序列化數據的YAML“表”
PS我的Yaml模式每次都會更改,但是始終包含“設置鍵”和“類型”,因此我想創建類似“動態解析器”的內容
您可以將Yaml反序列化為動態對象,然后再走一點。 類似於以下內容:
public static void Main()
{
var r = new StringReader(@"TestPaySignService:
Test:
TestString:
settings-key: TestStringValue
types:
- type1
- type2
TestString2:
settings-key: TestStringValue2
types:
- type1
- type2");
var deserializer = new Deserializer();
var yamlObject = deserializer.Deserialize<dynamic>(r)["TestPaySignService"]["Test"].Values;
// just to print the json
var serializer = new JsonSerializer();
serializer.Serialize(Console.Out, yamlObject);
}
輸出量
[{
"settings-key": "TestStringValue",
"types": [
"type1",
"type2"
]
},
{
"settings-key": "TestStringValue2",
"types": [
"type1",
"type2"
]
}]
如果需要使用TestString,則應將其反序列化為對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.