如何解析具有多行/结果的JSON
How to parse JSON with multiple rows/results
我不知道这是否是格式错误的JSON字符串,但我不知道如何解析每个结果以获取数据。
这是我的$.ajax函数的data.d响应(它在代码背后(C#)中调用WebMethod):
{"Row":[
{"ID1":"TBU9THLCZS","Project":"1","ID2":"Y5468ASV73","URL":"http://blah1.com","Wave":"w1","StartDate":"18/06/2015 5:46:41 AM","EndDate":"18/06/2015 5:47:24 AM","Status":"1","Check":"0"},
{"ID1":"TBU9THLCZS","Project":"2","ID2":"T7J6SHZCH","URL":"http://blah2.com","Wave":"w1","StartDate":"23/06/2015 4:35:22 AM","EndDate":"","Status":"","Check":""}
]}
在我看过的所有例子中,只有一两个显示了我的"Row"所在的位置,并且解决方案没有关联,比如一个人在最后一个数组后面有一个逗号。
如果不是直接的答案,我会很乐意提供一些建议。
我尝试过各种各样的回应组合。行,响应[0],每个使用$.,但我就是拿不到。
编辑,这是我的ajax调用:
$.ajax({
url: "Mgr.aspx/ShowActivity",
type: "POST",
data: JSON.stringify({
"ID": "null"
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var data = response.hasOwnProperty("d") ? response.d : response;
console.log(data);
},
error: function (xhr, ajaxOptions, thrownError) {
$('#lblResErr').html('<span style="color:red;">' + thrownError);
}
});
目前,我正试图将ID1值和ID2值输入控制台。
编辑(解决):感谢YTAM和Panagiotis!
success: function (response) {
var data = response.hasOwnProperty("d") ? response.d : response;
data = JSON.parse(data);
console.log(data);
}
现在控制台向我显示了一个由两个对象组成的数组,现在我知道该如何处理它们了!!
首先必须使用JSON.parse 解析字符串
var data=JSON.parse(rowData);
然后你会得到下面给出的对象,
data = {
"Row": [
{
"ID1":"TBU9THLCZS",
"Project":"1",
"ID2":"Y5468ASV73",
"URL":"http://blah1.com",
"Wave":"w1",
"StartDate":"18/06/2015 5:46:41 AM",
"EndDate":"18/06/2015 5:47:24 AM",
"Status":"1",
"Check":"0"
},
{
"ID1":"TBU9THLCZS",
"Project":"2",
"ID2":"T7J6SHZCH",
"URL":"http://blah2.com",
"Wave":"w1",
"StartDate":"23/06/2015 4:35:22 AM",
"EndDate":"",
"Status":"",
"Check":""
}
]}
这里我给出了两个选项,要么直接从数据变量中检索数据,要么通过循环检索数据。
data.row[0].ID1
data.row[0].Project
data.row[0].ID2
等等
或
使用环路,
var result = json.row;
for (var i = 0; i < result.length; i++) {
var object = result[i];
for (property in object) {
var value = object[property];
}
}
希望这能有所帮助。
您可能从web方法获得json字符串,而不是实际的JavaScript
对象。通过以下方式将其解析为JavaScript对象进行
var data = JSON.parse(response);
那么您将能够在data.Row
上迭代
相关文章:
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- 对于每个json结果,使用类jquery添加css
- 从JSON API结果迭代时未定义
- 在Ionic'中显示JSON结果;s系列重复
- 无法将JSON.parse与JSON_encode中的结果一起使用
- 如何将JSON结果设置为'src'共'img'以在ASP.NET MVC4中显示图像
- json-api和错误结果:无法读取属性'长度'的未定义
- JSON返回数组的奇怪结果
- 获取json结果的身份验证问题
- Neo4j结果(JSON格式)创建D3树图
- 无法在AJAX成功访问中显示JSON结果
- 返回带有筛选结果的新JSON对象
- (临时)在Web应用程序中存储JSON搜索结果
- 迭代 JSON 文件并且未在 Javascript 中正确返回结果
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- jquery jqgrid 不显示结果,具体取决于 JSON 对象中的参数
- 从Node.js上的mysql结果JSON中获取一个Array值
- 搜索框结果 == JSON 结果
- 正在从自动完成结果Json中删除重复项
- 如何合并两个facebook图api数据结果(JSON)