C# 如何使用Newtonsoft.JSON为此特定结构创建JSON数组

C# 如何使用Newtonsoft.JSON为此特定结构创建JSON数组,c#,json,json.net,C#,Json,Json.net,如何从这个JSON字符串使用Newtonsoft.JSON(JSON.net)创建JSON数组 [ { "Cells": { "results": [ { "Key": "Title", "Value": "hello", "ValueType": "Edm.String" }, { "Key": "Size", "Value

如何从这个JSON字符串使用Newtonsoft.JSON(JSON.net)创建JSON数组

[
  {
    "Cells": {
      "results": [
        {
          "Key": "Title",
          "Value": "hello",
          "ValueType": "Edm.String"
        },
        {
          "Key": "Size",
          "Value": "54549",
          "ValueType": "Edm.Int64"
        },
        {
          "Key": "Path",
          "Value": "http://somesite/a/hello.pptx",
          "ValueType": "Edm.String"
        },
        {
          "Key": "Summary",
          "Value": "Some summary <ddd/> interesting reading <ddd/> nice book <ddd/> ",
          "ValueType": "Edm.String"
        },
        {
          "Key": "Name",
          "Value": "http://somesite",
          "ValueType": "Edm.String"
        }
      ]
    }
  },
  {
    "Cells": {
      "results": [
        {
          "Key": "Title",
          "Value": "hi joe",
          "ValueType": "Edm.String"
        },
        {
          "Key": "Size",
          "Value": "41234",
          "ValueType": "Edm.Int64"
        },
        {
          "Key": "Path",
          "Value": "http://someothersite/interesting/hi.pptx",
          "ValueType": "Edm.String"
        },
        {
          "Key": "Summary",
          "Value": "Some summary <ddd/> interesting reading <ddd/> nice book <ddd/> ",
          "ValueType": "Edm.String"
        },
        {
          "Key": "Name",
          "Value": "http://somesite",
          "ValueType": "Edm.String"
        }
      ]
    }
  }
]
[
{
“细胞”:{
“结果”:[
{
“键”:“标题”,
“值”:“你好”,
“ValueType”:“Edm.String”
},
{
“键”:“大小”,
“价值”:“54549”,
“ValueType”:“Edm.Int64”
},
{
“键”:“路径”,
“值”:http://somesite/a/hello.pptx",
“ValueType”:“Edm.String”
},
{
“关键”:“总结”,
“价值”:“读一些有趣的好书”,
“ValueType”:“Edm.String”
},
{
“键”:“名称”,
“值”:http://somesite",
“ValueType”:“Edm.String”
}
]
}
},
{
“细胞”:{
“结果”:[
{
“键”:“标题”,
“价值”:“嗨,乔”,
“ValueType”:“Edm.String”
},
{
“键”:“大小”,
“值”:“41234”,
“ValueType”:“Edm.Int64”
},
{
“键”:“路径”,
“值”:http://someothersite/interesting/hi.pptx",
“ValueType”:“Edm.String”
},
{
“关键”:“总结”,
“价值”:“读一些有趣的好书”,
“ValueType”:“Edm.String”
},
{
“键”:“名称”,
“值”:http://somesite",
“ValueType”:“Edm.String”
}
]
}
}
]
json2csharp为这种结构提供了以下类

public class Result
{
    public string Key { get; set; }
    public string Value { get; set; }
    public string ValueType { get; set; }
}

public class Cells
{
    public List<Result> results { get; set; }
}

public class RootObject
{
    public Cells Cells { get; set; }
}
公共类结果
{
公共字符串密钥{get;set;}
公共字符串值{get;set;}
公共字符串ValueType{get;set;}
}
公共类单元
{
公共列表结果{get;set;}
}
公共类根对象
{
公共单元格单元格{get;set;}
}
如何使用这些类创建json数组

更新和解决方案

这会奏效的

static void Main(string[] args)
{
    RootObject ro = new RootObject();
    Cells cs = new Cells();
    cs.results = new List<Result>();

    Result rt = new Result();
    rt.Key = "Title";
    rt.Value = "hello";
    rt.ValueType = "Edm.String";
    cs.results.Add(rt);

    Result rs = new Result();
    rs.Key = "Size";
    rs.Value = "3223";
    rs.ValueType = "Edm.Int64";
    cs.results.Add(rs);

    ro.Cells = cs;

    string json = JsonConvert.SerializeObject(ro);
}
static void Main(string[] args)
{
    RootObject ro = new RootObject();
    Cells cs = new Cells();
    cs.results = new List<Result>();

    Result rt = new Result();
    rt.Key = "Title";
    rt.Value = "hello";
    rt.ValueType = "Edm.String";
    cs.results.Add(rt);

    Result rs = new Result();
    rs.Key = "Size";
    rs.Value = "3223";
    rs.ValueType = "Edm.Int64";
    cs.results.Add(rs);

    ro.Cells = cs;

    string json = JsonConvert.SerializeObject(ro);
}
static void Main(字符串[]args)
{
RootObject ro=新的RootObject();
细胞cs=新细胞();
cs.results=新列表();
结果rt=新结果();
rt.Key=“Title”;
rt.Value=“你好”;
rt.ValueType=“Edm.String”;
cs.results.Add(rt);
结果rs=新结果();
rs.Key=“大小”;
rs.Value=“3223”;
rs.ValueType=“Edm.Int64”;
cs.结果添加(rs);
ro.细胞=cs;
字符串json=JsonConvert.SerializeObject(ro);
}

您正在查找函数
反序列化对象

var json=”“;//在上面的代码中输入字符串
var jObect=JsonConvert.DeserializeObject(json);
//使用
var cells=jObject.cells;
var result1=cells.results.FirstOrDefault();

您正在查找函数
反序列化对象

var json=”“;//在上面的代码中输入字符串
var jObect=JsonConvert.DeserializeObject(json);
//使用
var cells=jObject.cells;
var result1=cells.results.FirstOrDefault();

下面给出了一个POCO示例:

    public class Account
{
    public string Email { get; set; }
    public bool Active { get; set; }
    public DateTime CreatedDate { get; set; }
    public IList<string> Roles { get; set; }
}
公共类帐户
{
公共字符串电子邮件{get;set;}
公共bool活动{get;set;}
公共日期时间CreatedDate{get;set;}
公共IList角色{get;set;}
}
这可以通过反序列化JSON字符串来实现,如下所示:

    string json = @"{
   'Email': 'james@example.com',
   'Active': true,
   'CreatedDate': '2013-01-20T00:00:00Z',
   'Roles': [
     'User',
     'Admin'
   ]
 }";

Account account = JsonConvert.DeserializeObject<Account>(json);

Console.WriteLine(account.Email);
stringjson=@”{
“电子邮件”:james@example.com',
“活动”:正确,
“CreatedDate”:“2013-01-20T00:00:00Z”,
“角色”:[
“用户”,
“管理员”
]
}";

Account Account=JsonConvert.DeserializeObject

给出以下POCO示例:

    public class Account
{
    public string Email { get; set; }
    public bool Active { get; set; }
    public DateTime CreatedDate { get; set; }
    public IList<string> Roles { get; set; }
}
公共类帐户
{
公共字符串电子邮件{get;set;}
公共bool活动{get;set;}
公共日期时间CreatedDate{get;set;}
公共IList角色{get;set;}
}
这可以通过反序列化JSON字符串来实现,如下所示:

    string json = @"{
   'Email': 'james@example.com',
   'Active': true,
   'CreatedDate': '2013-01-20T00:00:00Z',
   'Roles': [
     'User',
     'Admin'
   ]
 }";

Account account = JsonConvert.DeserializeObject<Account>(json);

Console.WriteLine(account.Email);
stringjson=@”{
“电子邮件”:james@example.com',
“活动”:正确,
“CreatedDate”:“2013-01-20T00:00:00Z”,
“角色”:[
“用户”,
“管理员”
]
}";

Account Account=JsonConvert.DeserializeObject

如果需要对象(尤其是json对象)的字符串表示,最相关的是.ToString()。
但是,它可能由于其他原因而失败…

如果您想要对象的字符串表示,尤其是json对象,最相关的是.ToString()。 但是,它可能会因为其他原因而失败…

这将起作用

static void Main(string[] args)
{
    RootObject ro = new RootObject();
    Cells cs = new Cells();
    cs.results = new List<Result>();

    Result rt = new Result();
    rt.Key = "Title";
    rt.Value = "hello";
    rt.ValueType = "Edm.String";
    cs.results.Add(rt);

    Result rs = new Result();
    rs.Key = "Size";
    rs.Value = "3223";
    rs.ValueType = "Edm.Int64";
    cs.results.Add(rs);

    ro.Cells = cs;

    string json = JsonConvert.SerializeObject(ro);
}
static void Main(string[] args)
{
    RootObject ro = new RootObject();
    Cells cs = new Cells();
    cs.results = new List<Result>();

    Result rt = new Result();
    rt.Key = "Title";
    rt.Value = "hello";
    rt.ValueType = "Edm.String";
    cs.results.Add(rt);

    Result rs = new Result();
    rs.Key = "Size";
    rs.Value = "3223";
    rs.ValueType = "Edm.Int64";
    cs.results.Add(rs);

    ro.Cells = cs;

    string json = JsonConvert.SerializeObject(ro);
}
static void Main(字符串[]args)
{
RootObject ro=新的RootObject();
细胞cs=新细胞();
cs.results=新列表();
结果rt=新结果();
rt.Key=“Title”;
rt.Value=“你好”;
rt.ValueType=“Edm.String”;
cs.results.Add(rt);
结果rs=新结果();
rs.Key=“大小”;
rs.Value=“3223”;
rs.ValueType=“Edm.Int64”;
cs.结果添加(rs);
ro.细胞=cs;
字符串json=JsonConvert.SerializeObject(ro);
}
这将起作用

static void Main(string[] args)
{
    RootObject ro = new RootObject();
    Cells cs = new Cells();
    cs.results = new List<Result>();

    Result rt = new Result();
    rt.Key = "Title";
    rt.Value = "hello";
    rt.ValueType = "Edm.String";
    cs.results.Add(rt);

    Result rs = new Result();
    rs.Key = "Size";
    rs.Value = "3223";
    rs.ValueType = "Edm.Int64";
    cs.results.Add(rs);

    ro.Cells = cs;

    string json = JsonConvert.SerializeObject(ro);
}
static void Main(string[] args)
{
    RootObject ro = new RootObject();
    Cells cs = new Cells();
    cs.results = new List<Result>();

    Result rt = new Result();
    rt.Key = "Title";
    rt.Value = "hello";
    rt.ValueType = "Edm.String";
    cs.results.Add(rt);

    Result rs = new Result();
    rs.Key = "Size";
    rs.Value = "3223";
    rs.ValueType = "Edm.Int64";
    cs.results.Add(rs);

    ro.Cells = cs;

    string json = JsonConvert.SerializeObject(ro);
}
static void Main(字符串[]args)
{
RootObject ro=新的RootObject();
细胞cs=新细胞();
cs.results=新列表();
结果rt=新结果();
rt.Key=“Title”;
rt.Value=“你好”;
rt.ValueType=“Edm.String”;
cs.results.Add(rt);
结果rs=新结果();
rs.Key=“大小”;
rs.Value=“3223”;
rs.ValueType=“Edm.Int64”;
cs.结果添加(rs);
ro.细胞=cs;
字符串json=JsonConvert.SerializeObject(ro);
}

谢谢,但我需要从我的对象生成json字符串,请参见上面的更新。@相反方向的像素是
var jsonStr=JsonConvert.SerializeObject(myObject)
。实际上,我接下来需要的是将其转换回JArray而不是jsonString:)谢谢,但我需要从我的对象生成json字符串,请参阅上面的更新。@pixel的反方向是
var jsonStr=JsonConvert.SerializeObject(myObject)
。实际上,我接下来需要的是将其转换回JArray而不是jsonString:)谢谢,我不想使用json字符串。我提供js