如何生成以整数为键的json字符串
本文关键字:json 字符串 何生成 整数 | 更新日期: 2023-09-27 18:24:05
我想在C#语言中生成这样的json字符串
{
"error": "0",
"message": "messages",
"data": {
"version": "sring",
"1": [
{
"keyword": "",
"title": ""
},
{
"keyword": "",
"title": ""
}
],
"2": [
...
],
"3": [
...
]
}
}
这里有一个问题,"1":[{},{}],如何生成这个部分?顺便说一句,我正在使用asp.net mvc项目,我想将这个json字符串返回到客户端web浏览器。
此响应可以简单地使用数组作为值的Dictionary<string, object>
生成。
public class KeywordTitle
{
public string keyword { get; set; }
public string title { get; set; }
}
public class Response
{
public string error { get; set; }
public string message { get; set; }
public Dictionary<string, object> data { get; set; }
}
var dictionary = new Dictionary<string, object> {
{"version", "sring"}
};
dictionary.Add("1", new []
{
new KeywordTitle { keyword = "", title = "" },
new KeywordTitle { keyword = "", title = "" },
new KeywordTitle { keyword = "", title = "" }
});
JsonConvert.SerializeObject(new Response
{
error = "0",
message = "messages",
data = dictionary
});
它生成:
{
"error" : "0",
"message" : "messages",
"data" : {
"version" : "sring",
"1" : [{
"keyword" : "",
"title" : ""
}, {
"keyword" : "",
"title" : ""
}, {
"keyword" : "",
"title" : ""
}
]
}
}
如果它是您的API,那么最好提取version
,以便使data
中的所有对象和类型为int
的键具有相同的类型。
从NuGet
获取Json.NET。然后,在您的MVC
模型中,在Array属性上使用此data annotation
[JsonProperty(PropertyName="1")]
public string[] YourProperty { get; set }
将数据序列化为JSON
时,将使用PropertyName
值。
如果您使用Newtonsoft.Json-NuGet包,序列化Dictionary<int, List<MyClass>>
将获得预期结果。
使用Json.net并将以下属性添加到要修改名称的属性中:
[JsonProperty(PropertyName = "1")]
public List<ObjectName> Objects { get; set; }
有关详细信息,请查看序列化属性。