我正在使用一个jQuery插件,它需要一个具有以下结构的JSON对象(我将从数据库中检索值):
{ results: [
{ id: "1", value: "ABC", info: "ABC" },
{ id: "2", value: "JKL", info: "JKL" },
{ id: "3", value: "XYZ", info: "XYZ" }
] }
下面是我的类:
public class results
{
int _id;
string _value;
string _info;
public int id
{
get
{
return _id;
}
set
{
_id = value;
}
}
public string value
{
get
{
return _value;
}
set
{
_value = value;
}
}
public string info
{
get
{
return _info;
}
set
{
_info = value;
}
}
}
这是我序列化它的方式:
results result = new results();
result.id = 1;
result.value = "ABC";
result.info = "ABC";
string json = JsonConvert.SerializeObject(result);
但是这将只返回一行。你能帮我返回多个结果吗?如何以上面指定的格式获得结果?
发布于 2013-05-08 21:29:45
首先,是no such thing as a JSON object。您在问题中得到的是一个JavaScript对象文字(有关区别的详细讨论,请参阅here )。下面是如何将已有的内容序列化到JSON中:
我会使用一个匿名类型来填充你的results
类型:
string json = JsonConvert.SerializeObject(new
{
results = new List<Result>()
{
new Result { id = 1, value = "ABC", info = "ABC" },
new Result { id = 2, value = "JKL", info = "JKL" }
}
});
还要注意,生成的JSON的结果项具有Number
类型的id
,而不是字符串。我怀疑这会是一个问题,但在C#中将id
的类型更改为string
将非常容易。
我还会调整你的results
类型,去掉后备字段:
public class Result
{
public int id { get ;set; }
public string value { get; set; }
public string info { get; set; }
}
此外,类通常是PascalCased
而不是camelCased
。
下面是从上面的代码生成的JSON:
{
"results": [
{
"id": 1,
"value": "ABC",
"info": "ABC"
},
{
"id": 2,
"value": "JKL",
"info": "JKL"
}
]
}
https://stackoverflow.com/questions/16441880
复制相似问题