我正在使用一个jQuery插件,需要一个具有以下结构的JSON对象(我将从数据库中检索值):
{ results: [
{ id: "1", value: "ABC", info: "ABC" },
{ id: "2", value: "JKL", info: "JKL" },
{ id: "3", value: "XYZ", info: "XYZ" }
] }
Run Code Online (Sandbox Code Playgroud)
这是我的班级:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我序列化它的方式:
results result = new results();
result.id = 1;
result.value = "ABC";
result.info = "ABC";
string json = JsonConvert.SerializeObject(result);
Run Code Online (Sandbox Code Playgroud)
但这只会返回一行.你能帮我回复一个以上的结果吗?如何以上面指定的格式获得结果?
And*_*ker 29
首先,没有JSON对象这样的东西.您在问题中得到的是一个JavaScript对象文字(有关差异的详细讨论,请参见此处).以下是关于如何序列化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" }
}
});
Run Code Online (Sandbox Code Playgroud)
另请注意,生成的JSON具有ids类型Number而不是字符串的结果项.我怀疑这将是一个问题,但它是足够容易的类型更改id到string在C#.
我也会调整你的results类型并摆脱支持领域:
public class Result
{
public int id { get ;set; }
public string value { get; set; }
public string info { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
此外,传统上的课程是PascalCased和不是camelCased.
这是上面代码中生成的JSON:
{
"results": [
{
"id": 1,
"value": "ABC",
"info": "ABC"
},
{
"id": 2,
"value": "JKL",
"info": "JKL"
}
]
}
Run Code Online (Sandbox Code Playgroud)
您只有一行要序列化.尝试这样的事情:
List<results> resultRows = new List<results>
resultRows.Add(new results{id = 1, value="ABC", info="ABC"});
resultRows.Add(new results{id = 2, value="XYZ", info="XYZ"});
string json = JavaScriptSerializer.Serialize(new { results = resultRows});
Run Code Online (Sandbox Code Playgroud)
**编辑2:抱歉,但我错过了他正在使用JSON.NET.使用JavaScriptSerializer上面的代码会产生以下结果:
{"results":[{"id":1,"value":"ABC","info":"ABC"},{"id":2,"value":"XYZ","info":"XYZ"}]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
140794 次 |
| 最近记录: |