javascript – 我想从JSON数据数组中获取一个特定条目并进行一些修改

首先,我通过Web服务器获取 JSON数据

$.getJSON(url,function(){
//my callback function;
});

现在我有以下数据:

{entries:[{title:'foo',id:'UUID',finished:null},{title:'bar',{title:'baz',finished:null}]}

我必须通过它的UUID找到一个特定的JSON条目,然后我需要修改一个部分,例如,创建一个新的json数据:

{title:'foo',finished:true}

并使用发送回服务器

$.post(url,data);

我完全迷失了这种情况……任何人都可以帮忙吗?

解决方法

假设您已将数据放入名为result的变量中,如下所示:

var result = {entries:[{title:'foo',finished:null}]}

你可以做一个for循环:

for ( var i=0; i<result.entries.length; i++ ) {
  if (result.entries[i].id == 'the_UUID_you_are_looking_for') {
    var entry = result.entries[i]; // "entry" is now the entry you were looking for
    // ... do something useful with "entry" here...
  }
}

编辑 – 我已经在下面写了完整的解决方案,以进一步说明这个想法并避免误解:

// Get data from the server
$.getJSON("url",function(result) {

  // Loop through the data returned by the server to find the UUId of interest
  for ( var i=0; i<result.entries.length; i++ ) {
    if (result.entries[i].id == 'the_UUID_you_are_looking_for') {
      var entry = result.entries[i];


      // Modifiy the entry as you wish here.
      // The question only mentioned setting "finished" to true,so that's
      // what I'm doing,but you can change it in any way you want to.
      entry.finished = true;


      // Post the modified data back to the server and break the loop
      $.post("url",result);
      break;
    }
  }
}

相关文章

kindeditor4.x代码高亮功能默认使用的是prettify插件,prett...
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小