Javascript 如何在ajax响应中获取特定属性?

Javascript 如何在ajax响应中获取特定属性?,javascript,json,ajax,Javascript,Json,Ajax,这是我从后端得到的ajax响应。我需要从这个响应中搜索属性“select”:true 从后端获取的Ajax响应: [ [ { "itemCategory": "Bedroom", "task": "Bedroom", "children": [ { "task": "Smart TV", "price": 300, "le

这是我从后端得到的ajax响应。我需要从这个响应中搜索属性“select”:true

从后端获取的Ajax响应:

[
[
    {
        "itemCategory": "Bedroom",
        "task": "Bedroom",
        "children": [
            {
                "task": "Smart TV",
                "price": 300,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            },
            {
                "task": "Bed",
                "price": 500,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    },
    {
        "itemCategory": "Kitchen",
        "task": "Kitchen",
        "children": [
            {
                "task": "Micro oven",
                "price": 200,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            },
            {
                "task": "Refrigerator",
                "price": 250,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    },
    {
        "itemCategory": "Kitchen",
        "task": "Kitchen",
        "children": [
            {
                "task": "Dining Table",
                "price": 100,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    }
],
[
    {
        "itemCategory": "Bedroom",
        "task": "Bedroom",
        "children": [
            {
                "task": "Smart TV",
                "price": 300,
                "leaf": true,
                "labor": "5",
                "rate": 4,
                "text": "",
                "select": true
            },
            {
                "task": "Bed",
                "price": 500,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    },
    {
        "itemCategory": "Kitchen",
        "task": "Kitchen",
        "children": [
            {
                "task": "Micro oven",
                "price": 200,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            },
            {
                "task": "Refrigerator",
                "price": 250,
                "leaf": true,
                "labor": "4",
                "rate": 3,
                "select": true
            }
        ]
    },
    {
        "itemCategory": "Kitchen",
        "task": "Kitchen",
        "children": [
            {
                "task": "Dining Table",
                "price": 100,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    }
],
[
    {
        "itemCategory": "Bedroom",
        "task": "Bedroom",
        "children": [
            {
                "task": "Smart TV",
                "price": 300,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            },
            {
                "task": "Bed",
                "price": 500,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    },
    {
        "itemCategory": "Kitchen",
        "task": "Kitchen",
        "children": [
            {
                "task": "Micro oven",
                "price": 200,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            },
            {
                "task": "Refrigerator",
                "price": 250,
                "leaf": true,
                "labor": "",
                "rate": 0,
                "text": ""
            }
        ]
    },
    {
        "itemCategory": "Kitchen",
        "task": "Kitchen",
        "children": [
            {
                "task": "Dining Table",
                "price": 100,
                "leaf": true,
                "labor": "5",
                "rate": 4,
                "text": "",
                "select": true
            }
        ]
    }
 ]
]
这是预期输出:

{
"task": "Smart TV",
"price": 300,
"leaf": true,
"labor": "5",
"rate": 4,
"text": "",
"select": true
},
{
"task": "Refrigerator",
"price": 250,
"leaf": true,
"labor": "4",
"rate": 3,
"select": true
},
{
"task": "Dining Table",
"price": 100,
"leaf": true,
"labor": "5",
"rate": 4,
"text": "",
"select": true
}
首先,我比较项目名称。一旦我得到了,我需要搜索“选择:真”

var project=“demo”;
Ext.Ajax.request({
url:“/common/services/general/basiccoperations/getDataByModelUsingGetMethod”,
方法:“GET”,
参数:{
actionId:'估计数据',
dataJson:“{”aspectType:“绘制估计器”}”
},
成功:功能(响应){
试一试{
var response=response.responseText;
var resObj=外部解码(响应);
对于(变量i=0;i

提前感谢。

这是一种没有外部库的方法。为了简化嵌套数组上的操作,定义了
flatMap

flatMap->[1,2],[3,4]]到[1,2,3,4]

const data=[{itemcegory:'dombery',task:'dombery',children:[{task:'Smart-TV',price:300,leaf:true,labor:'',labor:'',{itemcegory:'Kitchen',task:'Kitchen',children{任务:'Micro-coven',价格:200,叶:真,人工:'',价格:0,文本:'},{任务:'冰箱',价格:250,叶:真,人工:'',价格:0,文本:'}]},{itemcegory:'Kitchen',任务:'Kitchen',children:[{任务:'餐桌',价格:100,叶:真,人工:''',价格:0,文本:'}]},[{itemCategory:'Beddy',task:'Beddy',children:[{task:'Smart TV',价格:300,叶:真,人工:'5',费率:4,文本:'',选择:真},{task:'Bed',价格:500,叶:真,人工:'',费率:0,文本:''},{itemCategory:'Kitchen',task Kitchen',children{任务:“微型烤箱”,价格:200,叶:真,人工:'',价格:0,文本:'},{任务:“冰箱”,价格:250,叶:真,人工:''4',价格:3,选择:真}]},{itemCategory:'Kitchen',任务:'Kitchen',children:[{任务:“餐桌”,价格:100,叶:真,人工:'},价格:0,文本:'},[{itemCategory:'卧室',task:'卧室',儿童:[{task:'智能电视',价格:300,叶:真,人工:'',费率:0,文本:'},{task:'床',价格:500,叶:真,人工:'',费率:0,文本:'}]},{itemCategory:'厨房',任务:'厨房',儿童:[{task task:'微烤箱',价格:200,叶:真,人工:'''',费率:0,文本:'},{任务:'冰箱',价格:250,叶:真,人工:'',费率:0,文本:'}]},{项目类别:'厨房',任务:'厨房',儿童:[{任务:'餐桌',价格:100,叶:真,人工:'5',费率:4,文本:'',选择:真}]]
功能平面图(arr){
返回arr.reduce((acc,cur)=>{
acc=acc.concat(当前)
返回acc
}, [])
}
const result=flatMap(flatMap(data).map(x=>flatMap(x.children))).filter(x=>x.select==true)

console.log(result)
您可以使用lodash.filter,不使用任何外部库是否可以?@Goutam.A.S是的,您可以使用
var project = "demo";
       Ext.Ajax.request({
          url: '/common/services/general/basicOperations/getDataByModelUsingGetMethod',
          method: 'GET',
          params: {
              actionId: 'estimatordata',
              dataJson: '{"aspectType":"Painting Estimator"}'
          },
          success: function(response) {
              try {
                  var response = response.responseText;
                  var resObj = Ext.decode(response);
                  for (var i = 0; i < resObj.data.length; i++) {
                      if (resObj.data[i].refDataNameName == project) {
                        console.log(JSON.stringify(resObj.data[i]['allGridsData'], null, 4));
                      }
                  }
                  this.lookupReference('selectionsinquiryDetailGrid').getStore().loadData(
                      arr
                  );
              } catch (e) {
                  console.log(e);
              }
          },
          failure: function(response) {

          },
          scope: this
      });