C# 在c中用Json.net反序列化Json变量#

C# 在c中用Json.net反序列化Json变量#,c#,asp.net,json,serialization,json.net,C#,Asp.net,Json,Serialization,Json.net,我试图用JSON.NET处理JSON结构,但没有任何运气 { "Test": [ { "text": "blah...", "Id": 6, "Date": "2013-04-13T00:00:00" }, { "text": "bluuhh...", "Id": 7, "Date": "2013-02-10T00:00:00" } ], "ErrorCode": 0, "St

我试图用JSON.NET处理JSON结构,但没有任何运气

{
  "Test": [
    {
      "text": "blah...",
      "Id": 6,
      "Date": "2013-04-13T00:00:00"
    },
    {
      "text": "bluuhh...",
      "Id": 7,
      "Date": "2013-02-10T00:00:00"
    }
  ],
  "ErrorCode": 0,
  "Status": 0,
  "StatusString": "Okay",
  "Message": "successfully returned 2 events."
}
我通常写:

dynamic stuff = JsonConvert.DeserializeObject(json);

如何为
文本
创建
foreach

一种方法是通过自动生成器从json创建对象

dynamic stuff = JsonConvert.DeserializeObject(json);
foreach (var item in stuff.Test)
{
    Console.WriteLine("{0} {1} {2}", item.text, item.Id, item.Date);
}
对于您的json,它提供

public class Test
{
    public string text { get; set; }
    public int Id { get; set; }
    public string Date { get; set; }
}

public class RootObject
{
    public List<Test> Test { get; set; }
    public int ErrorCode { get; set; }
    public int Status { get; set; }
    public string StatusString { get; set; }
    public string Message { get; set; }
}
公共类测试
{
公共字符串文本{get;set;}
公共int Id{get;set;}
公共字符串日期{get;set;}
}
公共类根对象
{
公共列表测试{get;set;}
公共int错误代码{get;set;}
公共int状态{get;set;}
公共字符串StatusString{get;set;}
公共字符串消息{get;set;}
}
那你有

RootObject stuff = JsonConvert.DeserializeObject<RootObject>(json);
foreach (Test item in stuff.Test)
{
    //your code
}
RootObject stuff=JsonConvert.DeserializeObject(json);
foreach(stuff.Test中的测试项)
{
//你的代码
}

一种方法是通过自动生成器从json创建对象

对于您的json,它提供

public class Test
{
    public string text { get; set; }
    public int Id { get; set; }
    public string Date { get; set; }
}

public class RootObject
{
    public List<Test> Test { get; set; }
    public int ErrorCode { get; set; }
    public int Status { get; set; }
    public string StatusString { get; set; }
    public string Message { get; set; }
}
公共类测试
{
公共字符串文本{get;set;}
公共int Id{get;set;}
公共字符串日期{get;set;}
}
公共类根对象
{
公共列表测试{get;set;}
公共int错误代码{get;set;}
公共int状态{get;set;}
公共字符串StatusString{get;set;}
公共字符串消息{get;set;}
}
那你有

RootObject stuff = JsonConvert.DeserializeObject<RootObject>(json);
foreach (Test item in stuff.Test)
{
    //your code
}
RootObject stuff=JsonConvert.DeserializeObject(json);
foreach(stuff.Test中的测试项)
{
//你的代码
}

或者您可以在VS2012的编辑菜单中直接生成类=>paste special=>paste json as class,或者您可以在VS2012的编辑菜单中直接生成类=>paste special=>paste json as class谢谢:-)为什么要使用{0}{1}{2}?以及如何使用literal@user2761009只是为了格式化Console.WriteLine的输出(如果您觉得更容易阅读,那么
a+“”+b”c
)。如果您喜欢:
var text=(string)item.text谢谢:-)为什么要使用{0}{1}{2}?以及如何使用literal@user2761009只是为了格式化Console.WriteLine的输出(如果您觉得更容易阅读,那么
a+“”+b”c
)。如果您喜欢:
var text=(string)item.text