Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSON中使用子对象的属性之一查找子对象_Javascript_Jquery_Json - Fatal编程技术网

Javascript 在JSON中使用子对象的属性之一查找子对象

Javascript 在JSON中使用子对象的属性之一查找子对象,javascript,jquery,json,Javascript,Jquery,Json,我试图通过JSON中的一个属性来查找子对象,并向该对象添加更多属性。我不知道如何使用JQuery(或常规javascript)实现这一点。例如:从下面的JSON中,我想找到一个id为123-1的类别,然后添加另一个类别对象作为子对象。谢谢你的帮助 JSON: { "result": { "category": { "id": 123, "name": "cat1", "rules": [

我试图通过JSON中的一个属性来查找子对象,并向该对象添加更多属性。我不知道如何使用JQuery(或常规javascript)实现这一点。例如:从下面的JSON中,我想找到一个id为123-1的类别,然后添加另一个类别对象作为子对象。谢谢你的帮助

JSON:

{
"result": {
    "category": 
        {
            "id": 123,
            "name": "cat1",
            "rules": [
                {
                    "rulename": "r1",
                    "regex": ""
                },
                {
                    "rulename": "r2",
                    "regex": ""
                }
            ],
            "category": 
                {
                    "id": "123-1",
                    "name": "cat1-1",
                    "rules": [
                        {
                            "rulename": "r1-1",
                            "regex": ""
                        }
                    ]
                }                
        }

}
function addSubCategory(catId, anotherCatObj) {
    //Step1: Find category object with catID in the existing json
    //Step3: add the supplied object as a child.
}
}

Javascript:

{
"result": {
    "category": 
        {
            "id": 123,
            "name": "cat1",
            "rules": [
                {
                    "rulename": "r1",
                    "regex": ""
                },
                {
                    "rulename": "r2",
                    "regex": ""
                }
            ],
            "category": 
                {
                    "id": "123-1",
                    "name": "cat1-1",
                    "rules": [
                        {
                            "rulename": "r1-1",
                            "regex": ""
                        }
                    ]
                }                
        }

}
function addSubCategory(catId, anotherCatObj) {
    //Step1: Find category object with catID in the existing json
    //Step3: add the supplied object as a child.
}
它将一个新的
category
属性作为数组添加到嵌套的类别中(我假设它遵循命名法),然后将元素添加到该新数组中,从而为您提供:

{
  "result": {
    "category": [
      {
        "id": 123,
        "name": "cat1",
        "rules": [
          {
            "rulename": "r1",
            "regex": ""
          },
          {
            "rulename": "r2",
            "regex": ""
          }
        ],
        "category": [
          {
            "id": "123-1",
            "name": "cat1-1",
            "rules": [
              {
                "rulename": "r1-1",
                "regex": ""
              }
            ],
            "category": [              // BEGIN new addition
              {
                "id": "123-1-1",
                "name": "cat-1-1-1",
                "rules": [

                ]
              }
            ]                          // END new addition
          }
        ]
      }
    ]
  }
}

在JSFIDLE上玩的示例,顺便说一句:

它的目的是什么!!?这和不使用它不一样吗?谢谢。@M99:返回一个整数值,表示推送后数组中的元素数<代码>成功是一个布尔值。所以,为了保持布尔值,我使用
。基本上,它就像
!(!0))
表示false和
!(!1))
这表示真。(第一个
使其成为布尔结果(但反向),第二个给我布尔结果(实际)。太好了。非常感谢您的快速响应。