Jon*_*eet 26
为什么不使用JSON.NET的"LINQ to JSON"方法(JObject等)反序列化,只是要求名称所需的值?
这是足够动态的,所以你不需要为所有东西创建一个接口,但它比使用正则表达式要脆弱得多.
JObject json = JObject.Parse(text);
JToken value = json["foo"]["bar"];
Run Code Online (Sandbox Code Playgroud)
(我相信JSON.NET也支持dynamic.NET 4,但是没有特别需要在这里使用它.)
Dar*_*rov 18
正则表达式必须完全脱离任何讨论.忘记它,就好像它从未存在过一样.
创建和使用强类型是一件好事,可能就像我要去的那样.
但如果你想,你也可以使用dynamic:
class Program
{
static void Main()
{
var json = "{ 'foo': { 'bar': 'bar value', 'baz': [ 1, 2, 3 ] } }";
var serializer = new JavaScriptSerializer();
dynamic value = serializer.DeserializeObject(json);
Console.WriteLine(value["foo"]["baz"][1]);
}
}
Run Code Online (Sandbox Code Playgroud)
2在控制台上打印.