转换为格式正确的JSON

转换为格式正确的JSON,json,serialization,json.net,Json,Serialization,Json.net,我的任务是调用一个API,它需要一个JSON负载作为它的请求。。JSON的示例格式如下所示: { "method":"methodname", "in":[ { "account":"acme", "context":"abc123" }, "content", { "mSearchText":"chocolate", "mItemDataIDs":

我的任务是调用一个API,它需要一个JSON负载作为它的请求。。JSON的示例格式如下所示:

{  
   "method":"methodname",
   "in":[  
      {  
         "account":"acme",
         "context":"abc123"
      },
      "content",
      {  
         "mSearchText":"chocolate",
         "mItemDataIDs":[  
            "Entry:ID",
            "Entry:EntryRef",
            "Entry:CategoryID"
         ]
      }
   ]
}
我正在使用JSON.NET(Newstonsoft)从.NET对象构造JSON。 我面临的问题是正确地构造“in”部分。。 它似乎是一个对象数组,但只有第二项有标题(“内容”,{…}

我能得到的最接近的结果是:

{
  "method": "methodname",
  "in":[
    {
      "account": "PANDO",
      "context": "sdfsd22342"
    },
    {
      "mSearchText":"chocolate",
      "mItemDataIDs":[
        "Entry:ID",
        "Entry:EntryRef",
        "Entry:CategoryID"
      ]
    }
  ]
}
除了“内容”之外,其他内容相同,缺失:

到目前为止,我的代码是:

public class Payload
    {
        public string method { get; set; }
        [JsonProperty("in")]
        public List<object> Items { get; set; }
    }

    public class AccountDetails
    {
        public string account { get; set; }
        public string context { get; set; }
    }

    [JsonObject(Title = "content")]
    public class Content
    {
        public string mSearchText { get; set; }
        public string[] mItemDataIDs { get; set; }
    }

        Payload payload = new Payload();
        payload.method = "methodname";
        payload.Items = new List<object>();
        payload.Items.Add(new AccountDetails
        {
            account = "acme",
            context = "abc123"
        });
        Content conent = new Content
        {
            mSearchText = "chocolate",
            mItemDataIDs = new string[] { "Entry:ID", "Entry:EntryRef", "Entry:CategoryID" }
        };
        payload.Items.Add(conent);

        string jsonObject = JsonConvert.SerializeObject(payload, Formatting.Indented);
公共类有效负载
{
公共字符串方法{get;set;}
[JsonProperty(“in”)]
公共列表项{get;set;}
}
公共类帐户详细信息
{
公共字符串帐户{get;set;}
公共字符串上下文{get;set;}
}
[JsonObject(Title=“content”)]
公开课内容
{
公共字符串mSearchText{get;set;}
公共字符串[]MitemDataId{get;set;}
}
有效载荷=新的有效载荷();
payload.method=“methodname”;
payload.Items=新列表();
有效负载.项目.添加(新帐户详细信息
{
account=“acme”,
context=“abc123”
});
内容内容=新内容
{
mSearchText=“巧克力”,
mItemDataIDs=新字符串[]{“条目:ID”、“条目:EntryRef”、“条目:CategoryID”}
};
有效载荷。项目。添加(内容);
字符串jsonObject=JsonConvert.SerializedObject(有效负载,格式化,缩进);

关于我能做什么有什么建议吗?

是“内容”实际上就是标题,还是它只是一个字符串对象?啊哈。。很明显,我把事情复杂化了。。当然,即使它是一个标题,它也只是数组中的另一个“对象”。。因此,只需添加payload.Items.Add(“内容”);在两个对象之间修复此问题!!谢谢..您也可以检查一下: