如何避免json字符串中的额外嵌套

如何避免json字符串中的额外嵌套,json,extjs,Json,Extjs,我试图根据中的语法创建json字符串。我使用以下代码创建了json字符串: var data = []; data.push( { "firstName": "John", "lastName": "Smith", "isAlive&quo

我试图根据中的语法创建json字符串。我使用以下代码创建了json字符串:

        var data = [];
        
        data.push(
            {
                "firstName": "John",
                "lastName": "Smith",
                "isAlive": true,
                "age": 27,      
            });
            
        var addressdata = [];   

        addressdata.push(
                    {
                        "streetAddress": "21 2nd Street",
                        "city": "New York",
                        "state": "NY",
                        "postalCode": "10021-3100"
                    });
        
        data.push(
            {
                "address" : addressdata
            }
        );      
该字符串是正确的json字符串。然而,json结构包含一些不必要的嵌套,如下面的图1和图2所示。更准确地说,地址块有多余的大括号,字符串也用括号而不是大括号括起来。那么,我做错了什么?如何避免这种不必要的嵌套并获得如图3所示的结构

图1

图2

图3


字符串是在Ajax请求中使用
jsonData:data,
生成的。

您使用的是
数据变量的列表。这就是为什么JSON正文的开头和结尾都有括号。要解决此问题,您可以在
数据
变量中声明整个JSON主体,如下所示:

data = {
  "firstname": "test",
  (...)
  "address": [{
    "streetAddress": "test"
    (...)
  }]
}