[英]Split String with Custom conditions and delimeters
將這些字符串拆分為List<customObject>
的最佳方法是什么?
[
[
"a",
"123",
"456"
],
[
"b",
"456",
"789"
]
]
說,我想獲取帶有定義的SampleObject列表:
class SampleObject
{
public string Letter { get; set; }
public string FirstNumber { get; set; }
public string SecondNumber{ get; set; }
}
您可以使用Json.Net將其反序列化為動態對象,然后填充您的自定義對象
dynamic items = JsonConvert.DeserializeObject(jsonString);
var list = new List<SampleObject>();
foreach (var item in items)
{
var sampleObject = new SampleObject
{
Letter = item[0].ToString(),
FirstNumber = item[1].ToString(),
SecondNumber = item[2].ToString()
}
list.Add(sampleObject);
}
為此,我們使用Json.Net的Jarray.Parse方法。 這是他們的網絡幫助中的示例:
string json = @"[
'Small',
'Medium',
'Large'
]";
JArray a = JArray.Parse(json);
您可以創建對象的實例,然后從數組中的每個元素加載。
這是一個使用示例字符串和類的工作示例:
JArray aAllValues = JArray.Parse(json);
var SampleObjectCollection = new List<SampleObject>();
foreach (JArray aValues in aAllValues)
{
var oSampleObject = new SampleObject();
int index = 0;
foreach (var oProperty in aValues.Children())
{
switch (index)
{
case 0:
oSampleObject.Letter = oProperty.Value<String>();
break;
case 1:
oSampleObject.FirstNumber = oProperty.Value<String>();
break;
case 2:
oSampleObject.SecondNumber = oProperty.Value<String>();
break;
}
index++;
}
SampleObjectCollection.Add(oSampleObject);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.