ajax成功时json的关键值

Filter Key value of json on ajax success

本文关键字:键值 json 成功 ajax      更新时间:2023-09-26

是否有办法过滤我的键值。我想过滤键,其中我的键是REF,我的值是text1。获得一个键是REF和我的值是text1的结果。当返回结果时,我想单独访问每个键值。像alert(SNO, value);其中SNO是我的键和从我的筛选结果

返回的值
<script type="text/javascript">
       function ClientNodeClicking(sender, eventArgs) {
           var node = eventArgs.get_node();
           var text1 = node.get_text();
           var text2 = node.get_value();
           $.ajax({
               type: "POST",
               url: "A2_JVV.aspx/ds2json",
               data: "{}",
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               success: function (msg) {
                   $("#Result").text(msg.d);
                   $.each(msg, function (key, value) {
                       console.log(key, value);
                   });
               }
           });
           alert(text1);
       }   
   </script>

这是我在chrome控制台得到的

d [
  {
    "REF": "JVV-001441",
    "SNO": 1.0,
    "mdate": "2015-08-15T00:00:00",
    "date": "15/08/2015",
    "INITIAL": "G",
    "ACNO": "02010219",
    "TITLE": "S S ENT. ON LINE A/C",
    "JOB_ID": "00000",
    "JOB": "0-N/A",
    "cRR": 0.00,
    "dRR": 500000.00,
    "U_INSERT": "KHURRAM",
    "I_DATE": "2015-08-15T14:09:19.997",
    "U_EDIT": null,
    "E_DATE": null,
    "DISC": "RECEIVED ON LINE SLIP NO#5794 MEEZAN S S A/C (AMJAD ANJUM)"
  },
  {
    "REF": "JVV-001441",
    "SNO": 2.0,
    "mdate": "2015-08-15T00:00:00",
    "date": "15/08/2015",
    "INITIAL": "C",
    "ACNO": "020101039",
    "TITLE": "AMJAD ANJUM",
    "JOB_ID": "00000",
    "JOB": "0-N/A",
    "cRR": 500000.00,
    "dRR": 0.00,
    "U_INSERT": "KHURRAM",
    "I_DATE": "2015-08-15T14:09:20.01",
    "U_EDIT": null,
    "E_DATE": null,
    "DISC": "RECEIVED ON LINE SLIP NO#5794 MEEZAN S S A/C"
  }
]

如果你想过滤任何数组,你可以使用每个数组的核心.filter()方法。

通过遍历每个元素构建一个新数组。它将调用提供的回调函数,将数组中的元素传递给它,如果回调函数返回true,则该元素将被放入新数组中,否则将被忽略。

这样就可以过滤掉数组中所有属性REF不等于text1的元素;

var x = d.filter(function (item) {
    return item.REF === 'text1';
});

您的最后一个需求听起来像是您想要遍历每个对象的属性而不是直接访问它们。这可以用for in循环完成,但是不能保证属性迭代的顺序。

像这样:

x.forEach(function (item){
   //forEach iterates over every object in array
    for(var i in item) {
        //for in iterates over every property in item
        console.log(i, item[i]);   
    }
});

也因为大多数核心数组方法,filter forEach map返回新的数组,它们可以被链接。

编辑:我撒谎,forEach不返回它自己,所以不能链接之后。然而,其他提到的都是。

:

var x = [].filter().map();
不是

var x = [].filter();
x = x.map();

参见:http://jsfiddle.net/cgzbvpoe/1/