转换为格式正确的JSON
我的任务是调用一个API,它需要一个JSON负载作为它的请求。。JSON的示例格式如下所示:转换为格式正确的JSON,json,serialization,json.net,Json,Serialization,Json.net,我的任务是调用一个API,它需要一个JSON负载作为它的请求。。JSON的示例格式如下所示: { "method":"methodname", "in":[ { "account":"acme", "context":"abc123" }, "content", { "mSearchText":"chocolate", "mItemDataIDs":
{
"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(“内容”);在两个对象之间修复此问题!!谢谢..您也可以检查一下: