我有以下文本需要放入字典中。乍一看,我认为这会很容易,但最后我发现自己进行了大量的字符串搜索,有时会发现破坏解析器的值。
"0":
{
"key":"valueWithAnyCharInside",
"key2":"valueWithAnyCharInside",
"key3":"valueWithAnyCharInside"
},
这将映射到以下模型:
class Item
{
private int id;
private Dictionary<string, string> data;
}
有什么想法吗?也许使用正则表达式 ...
最佳答案
您的数据格式可能是JSON,但您只提供了其中的一部分。我将其稍微修改为:
{"0":
{
"key":"valueWithAnyCharInside",
"key2":"valueWithAnyCharInside",
"key3":"valueWithAnyCharInside"
}
}
现在您可以按如下方式解析它:
string json = ...; //your json goes here
var serializer = new JavaScriptSerializer();
var parsed = serializer.Deserialize<Dictionary<string, Dictionary<string, string>>>(json);
//printing data
parsed["0"].Select(pair => string.Format( "{0} - {1}", pair.Key, pair.Value))
.ToList()
.ForEach(Console.WriteLine);
打印:
key - valueWithAnyCharInside
key2 - valueWithAnyCharInside
key3 - valueWithAnyCharInside
获得强类型 List<Item>
使用下一个代码
List<Item> items = parsed.Select(pair => new Item { Id = int.Parse(pair.Key),
Data = pair.Value})
.ToList();
项目在哪里:
class Item
{
public int Id { get; set; }
public Dictionary<string, string> Data {get;set;}
}
关于c# - 如何优雅地将下面的文字解析成字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16789303/