2013-06-03 39 views
1

我有以下格式化的Json如何解析和阅读Json格式的文本?

{ 
    "Id": 0, 
    "MsgId": 125, 
    "ExceptionDetails": "whatever2" 
} 


{ 
    "Id": 1, 
    "MsgId": 135, 
    "ExceptionDetails": "whatever2" 
} 

这也正是它是如何在没有BRAKETS

我需要解析这个文本文件,并得到这些键的值,例如文件的文件在这个例子中,我需要得到0和1

var json = System.IO.File.ReadAllText(@"C:\development\commonArea\test3.txt"); 

var objects = JArray.Parse(json); // parse as array 

foreach (JObject root in objects) 
{ 
    foreach (KeyValuePair<String, JToken> app in root) 
    { 
     if (app.Key == "Id") 
     { 
      var appName2 = app.Key; 
      Console.WriteLine(I HAVE NO IDEA); 
     } 
    } 

} 

感谢

回答

0

做一个匹配类,然后使用Deseri alizer。这是使用System.Web.Script.Serialization命名空间。

public class Item 
{ 
    public int Id { get; set; } 
    public int MsgId { get; set; } 
    public string ExceptionDetails { get; set; } 
} 

public class RootObject 
{ 
    public List<Item> Items { get; set; } 
    public RootObject DeserializeClass() 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     RootObject obj = serializer.Deserialize<RootObject >(JSONSTRING); 
     return obj; 
    } 
} 
+0

OP具有对象的阵列,我怀疑它可以被表示为单个'Class'实例与一个'INT Id'字段。 –

+0

@IlyaIvanov你的权利,我只是没有注意到,因为json很时髦。上面编辑。 –

1
var objects = JArray.Parse(json); // parse as array 

foreach (JObject jobject in objects) 
{ 
    Console.WriteLine(jobject.Value<int>("Id")); 
} 

打印:

0 
1 

您呈现一个无效的JSON。我已经修改它,以使得它成为一个有效的JSON数组:

[ 
    { "Id": 0, "MsgId": 125, "ExceptionDetails": "whatever2" }, 
    { "Id": 1, "MsgId": 135, "ExceptionDetails": "whatever2" } 
] 
+0

谢谢,这就是我正在寻找 – user1429595

+0

然后显示Ilya一些爱,并将其标记为答案! – Ron