遍历JSON对象
Traversing a JSON object
我从PHP页面获取的数据如下:
[{
"id": "1",
"name": null,
"startdate": "2012-07-20",
"starttime": "09:53:02",
"enddate": "2012-07-20",
"endtime": "09:54:10",
"duration": "01:00:00",
"feedbacks": [{
"id": "1",
"type": "1",
"content": "cont"
}],
"conditions": [{
"id": "1",
"dev_id": "1",
"mod_id": "2",
"sub_id": "3",
"to_be_compared_value": "1",
"comparison_type": "1"
}],
"actions": [{
"id": "1",
"dev_id": "1",
"mod_id": "1",
"sub_id": "1",
"target_action": "1"
}]
}]
哪种方式遍历这个对象是简单、有效和优雅的?我一直用这两个直到这个时候。你能告诉我哪一个必须是我的选择吗?或者你能给我一个替代方案吗?为什么?我有一个正在运行的应用程序版本,我现在正在审查我自己的代码,我想听取大家的一些建议。
提前感谢
我以前使用的方法:
$.map
for(var i in obj)
还有一次,我将根据这些数据创建一个表
如果我想更改数据,我会使用jQuery的each()(或map())
我应该补充一点,您还应该创建一个返回对象的函数(甚至可能使用一些实用程序方法),因为您的数据现在对JS不是很友好。那些日期和时间,那些ID作为字符串。
示例:
function cleanMyObject(object){
var cleanFeedbacks = function(feedbacks){
/* ... */
return feedback;
};
object.start = /* transform date and time strings to datetime object ...*/
object.end = /*...*/
/*...*/
$.map(object.feedbacks,cleanFeedbacks);
/* cleanup the remaining objects... */
return object;
}
$.map(receivedData, cleanMyObject);
// cleanMyObject() returns the modified object so $.map will clean everything in your array.
我更喜欢使用http://underscorejs.org/像这样的事情。它对对象、集合等有很多有用的功能。
如果接收的数据没有更改,只需解析对象并使用所需的键。据我所知,所有浏览器都有一个名为JSON.parse的函数,可以将JSON字符串转换为JS对象。我想说的是:不要懒惰,如果你的对象总是提供相同的数据,那么编写"通用"函数不会给你带来任何好处,而且你几乎没有机会在不同的对象中再次使用该函数。
var myobj= JSON.parse(phpJSONstring);
var feedbacks= myobj["feedbacks"];
//do something with feedbacks
var conditions= myobj["conditions"];
//do something with conditions
etc
您可以转换javascript对象中的json字符串,然后访问如下对象:
var obj = jQuery.parseJSON(jsonString);
alert('Id='+obj.id);
var feedbackList = obj.feedbacks;
for (var i=0; i<feedbackList.length; i++) {
...
}
对jQuery.parseJSON的引用:http://api.jquery.com/jQuery.parseJSON/
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)