C# 如何解析和读取Json格式的文本?

C# 如何解析和读取Json格式的文本?,c#,json.net,C#,Json.net,我有一个带有以下格式Json的文件 { "Id": 0, "MsgId": 125, "ExceptionDetails": "whatever2" } { "Id": 1, "MsgId": 135, "ExceptionDetails": "whatever2" } 这正是它在没有制动器的文件中的方式 我需要解析这个文本文件并获取这些键的值,例如,在这个示例中,我需要获取0和1 var json = System.IO.File.ReadAllText(@"C:

我有一个带有以下格式Json的文件

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


{
  "Id": 1,
  "MsgId": 135,
  "ExceptionDetails": "whatever2"
}
这正是它在没有制动器的文件中的方式

我需要解析这个文本文件并获取这些键的值,例如,在这个示例中,我需要获取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);
        }
    }

}
var json=System.IO.File.ReadAllText(@“C:\development\commonArea\test3.txt”);
var objects=JArray.Parse(json);//解析为数组
foreach(对象中的作业对象根)
{
foreach(根目录下的KeyValuePair应用程序)
{
如果(app.Key==“Id”)
{
var appName2=app.Key;
Console.WriteLine(我不知道);
}
}
}

谢谢

创建一个匹配的类,然后使用反序列化器。这是使用
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;
     }
}
公共类项目
{
公共int Id{get;set;}
public int MsgId{get;set;}
公共字符串异常详细信息{get;set;}
}
公共类根对象
{
公共列表项{get;set;}
公共根对象反序列化类()
{
JavaScriptSerializer serializer=新的JavaScriptSerializer();
rootobjectobj=serializer.Deserialize(JSONSTRING);
返回obj;
}
}

创建一个匹配的类,然后使用反序列化器。这是使用
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;
     }
}
公共类项目
{
公共int Id{get;set;}
public int MsgId{get;set;}
公共字符串异常详细信息{get;set;}
}
公共类根对象
{
公共列表项{get;set;}
公共根对象反序列化类()
{
JavaScriptSerializer serializer=新的JavaScriptSerializer();
rootobjectobj=serializer.Deserialize(JSONSTRING);
返回obj;
}
}
您提供的JSON无效。我对其进行了修改,使其成为有效的JSON数组:

[
    { "Id": 0, "MsgId": 125, "ExceptionDetails": "whatever2" },
    { "Id": 1, "MsgId": 135, "ExceptionDetails": "whatever2" }
]
您提供的JSON无效。我对其进行了修改,使其成为有效的JSON数组:

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

OP有一个对象数组,我怀疑它是否可以用一个
int-Id
字段表示为单个
Class
实例。@IlyaIvanov您的权利,我只是没有注意到,因为json很时髦。edit above.OP有一个对象数组,我怀疑它是否可以表示为一个带有一个
int-Id
字段的
Class
实例。@IlyaIvanov您的权利,我只是没有注意到,因为json很时髦。编辑上面。谢谢你,这就是我想要的,然后给伊利亚一些爱,并把它标记为答案!谢谢你,这就是我想要的,然后给伊利亚一些爱,并把它作为答案!