如何使用Greasemonkey更改JSON对象数据

时间:2014-10-23 03:24:07

标签: javascript json greasemonkey tampermonkey

我正在使用的网站包含一个JavaScript文件,在文件中包含一个带有JSON的代码,如下所示:

$.getJSON(API_URL + getSubdomain() + "/values");

数据文件包含代码:

{"has_clicked_all":false,"has_clicked_already":false,"buttons":

[{"id":3922,"name":"button3992","has_clicked":false},

{"id":4613,"name":"button4613","has_clicked":false},

{"id":4339,"name":"button4339","has_clicked":false},

{"id":4340,"name":"button4340","has_clicked":false},

{"id":4341,"name":"button4341","has_clicked":false},
    {"id":4622,"name":"button4622","has_clicked":false},

{"id":4623,"name":"button4623","has_clicked":false},

{"id":4828,"name":"button4828","has_clicked":false},
    {"id":4829,"name":"button4829","has_clicked":false},

{"id":4861,"name":"button4861","has_clicked":false}]}

我想要做的是在不点击所有按钮的情况下将所有值更改为true。我已经尝试过做了很多研究,花了4个小时搞清楚我是如何做到这一点的,而且我对这一切都很陌生,只是让我陷入困境...... 我只需要有人帮我一把,我将不胜感激!三江源

1 个答案:

答案 0 :(得分:1)

解析json,修改数据,然后重新编码为json

<强>的javascript:

var data = JSON.parse(json);
for(i = 0; i < data.buttons.length; i++){
    data.buttons[i].has_clicked = true;
}
data.has_clicked_all = true;
data = JSON.stringify(data);
console.log(data);

demo

jQuery:

(function() {
  $.getJSON(API_URL + getSubdomain() + "/values", function(data) {
      data.has_clicked_all = true;
      $.each( data.buttons, function( i, item) {
        data.buttons[i].has_clicked = true;
      });
      data = JSON.stringify(data);
      alert(data);
  });
})();