我有以下JSON数组
var feeds = {"data":[{"id":"128811893769_10152115787143770"},{"id":"128811893769_10152115787143770"}]}
如何在json中添加新的键和值,即(likes_count,share_count)
$.each(feeds.data, function (i, item) { $.getJSON("facebook_feeds.php?result_type=getCounts&id="+item.id, function(summary) { var likesCount = summary[0].like_info.like_count; var shareCount = summary[0].share_info.share_count; }); });
我想将键和值推入feed数组
尝试这个
feeds.data.push({"likesCount": likesCount}); feeds.data.push({"shareCount": shareCount});
有两种方法。1.在item
中直接添加likesCount和shareCount [项目保持当前feed.data元素]要么2.使用jQuery的extend
方法,(我不建议将其用于此类琐碎的事情)
$.each(feeds.data, function (i, item) { $.getJSON("facebook_feeds.php?result_type=getCounts&id="+item.id, function(summary) { var likesCount = summary[0].like_info.like_count; var shareCount = summary[0].share_info.share_count; // Approach 1 item['likesCount'] = likesCount; item['shareCount'] = shareCount; // Approach 2 $.extend ( item, { 'likesCount' : likesCount , 'shareCount' : shareCount } ); }); });
push()替代方法是联系替代方法,它有机会同时使用jQuery和javascript
/* * Extend Array extra json * Example: * $.extendArray([{a:1,b:2}],[{c:3,d:4}]) return -> [{a:1,b:2},{c:3,d:4}] * $.extendArray([{a:1,b:2}],{c:3,d:4}) return -> [{a:1,b:2},{c:3,d:4}] * */ $.extend({ extendArray: function() { return Array.prototype.concat.apply([], arguments); } }); // Array inside json var arr = $.extendArray([{a:1,b:2}],[{c:3,d:4},{e:4,f:5},{g:6,h:7}]); console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
未经允许不得转载:编程自学网 » 使用jquery将新元素添加到JSON数组中