Javascript JSON格式不正确错误

Javascript JSON格式不正确错误,javascript,jquery,json,Javascript,Jquery,Json,在下面的代码中 <head> <meta charset="UTF-8"> <title>JSON ex</title> <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"> </scr

在下面的代码中

<head>
        <meta charset="UTF-8">
        <title>JSON ex</title>
        <script type = "text/javascript" 
            src = "http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
        </script>

        <script type="text/javascript" language = "javascript">
            var accountGrid = [];
            $(document).ready(function(){
                $.getJSON('result.json', function(entry){
                    accountGrid.push({
                        name: entry.name,
                        marketValue: entry.marketValue,
                        cash: entry.cash,
                        legend: entry.legend
                    }); 
                });
            });
        </script>
    </head>
    <body>

    </body>

我看到JSON
格式不正确
错误
result.json
位于同一文件夹中

由于此错误,
accountGrid
变为空

< P> >在< <代码> jQuery > GETJSONS/<代码>?< /P> < P>中,我们要考虑的是:<代码>未正确形成的<代码/代码>错误,让我们考虑…

JSON必须是单个值(对象、数组等)

JSON对象应该是单个值。这里有两个用逗号分隔的对象。也许您可以将它们中的每一个指定为单个对象的成员

# a JSON object consists of a single value definition
value
    string
    number
    object
    array
    true
    false
    null

# this value can be an object
object
    {}
    { members }

# or an array
array
    []
    [ elements ]
______

单引号是非法的

JSON禁止对字符串使用单引号(

# a string consists of chars wrapped in double-quotation marks
string
    ""
    " chars "
因此,将所有单引号替换为双引号

考虑到以上两件事,你最终会得到这样的结果:

{
    "key1": {
        "name": "Brokerage Account 3",
        "marketValue": "1999990",
        "cash": "1995826",
        "legend": "orange"
    },
    "key2": {
        "name": "Account 3",
        "marketValue": "1949990",
        "cash": "1695856",
        "legend": "darkorange"
    }
}
[
    {
        "name": "Account1",
        "marketValue": "10990",
        "cash": "199926",
        "legend": "orange"
    },
    {
        "name": "Account2",
        "marketValue": "156590",
        "cash": "133856",
        "legend": "darkorange"
    }
]
[]

______

将对象放置在数组中

或者,按照@Gerald Schneider的建议,将对象放置在数组中。规范说明
(定义见上文)可以是
数组

array
    []
    [ elements ] # elements can multiple values, e.g. objects
因此,您的JSON将如下所示:

{
    "key1": {
        "name": "Brokerage Account 3",
        "marketValue": "1999990",
        "cash": "1995826",
        "legend": "orange"
    },
    "key2": {
        "name": "Account 3",
        "marketValue": "1949990",
        "cash": "1695856",
        "legend": "darkorange"
    }
}
[
    {
        "name": "Account1",
        "marketValue": "10990",
        "cash": "199926",
        "legend": "orange"
    },
    {
        "name": "Account2",
        "marketValue": "156590",
        "cash": "133856",
        "legend": "darkorange"
    }
]
[]

______

使用解析的JSON(其中JSON是一个数组)

如果将数据表示为一个数组,回调函数只需将解析后的JSON分配给
accountGrid
变量:

<script type="text/javascript" language = "javascript">
    var accountGrid = [];
    $(document).ready(function(){
        $.getJSON('result.json', function(entry){
            accountGrid = entry;
        });
    });
</script>
______

将来编写JSON

我建议您在支持JSON语法突出显示的IDE中编辑JSON文件,然后在编辑器中会出现这些问题。或者,

让我们考虑…

JSON必须是单个值(对象、数组等)

JSON对象应该是单个值。这里有两个用逗号分隔的对象。也许您可以将它们中的每一个指定为单个对象的成员

# a JSON object consists of a single value definition
value
    string
    number
    object
    array
    true
    false
    null

# this value can be an object
object
    {}
    { members }

# or an array
array
    []
    [ elements ]
______

单引号是非法的

JSON禁止对字符串使用单引号(

# a string consists of chars wrapped in double-quotation marks
string
    ""
    " chars "
因此,将所有单引号替换为双引号

考虑到以上两件事,你最终会得到这样的结果:

{
    "key1": {
        "name": "Brokerage Account 3",
        "marketValue": "1999990",
        "cash": "1995826",
        "legend": "orange"
    },
    "key2": {
        "name": "Account 3",
        "marketValue": "1949990",
        "cash": "1695856",
        "legend": "darkorange"
    }
}
[
    {
        "name": "Account1",
        "marketValue": "10990",
        "cash": "199926",
        "legend": "orange"
    },
    {
        "name": "Account2",
        "marketValue": "156590",
        "cash": "133856",
        "legend": "darkorange"
    }
]
[]

______

将对象放置在数组中

或者,按照@Gerald Schneider的建议,将对象放置在数组中。规范说明
(定义见上文)可以是
数组

array
    []
    [ elements ] # elements can multiple values, e.g. objects
因此,您的JSON将如下所示:

{
    "key1": {
        "name": "Brokerage Account 3",
        "marketValue": "1999990",
        "cash": "1995826",
        "legend": "orange"
    },
    "key2": {
        "name": "Account 3",
        "marketValue": "1949990",
        "cash": "1695856",
        "legend": "darkorange"
    }
}
[
    {
        "name": "Account1",
        "marketValue": "10990",
        "cash": "199926",
        "legend": "orange"
    },
    {
        "name": "Account2",
        "marketValue": "156590",
        "cash": "133856",
        "legend": "darkorange"
    }
]
[]

______

使用解析的JSON(其中JSON是一个数组)

如果将数据表示为一个数组,回调函数只需将解析后的JSON分配给
accountGrid
变量:

<script type="text/javascript" language = "javascript">
    var accountGrid = [];
    $(document).ready(function(){
        $.getJSON('result.json', function(entry){
            accountGrid = entry;
        });
    });
</script>
______

将来编写JSON


我建议您在支持JSON语法突出显示的IDE中编辑JSON文件,然后在编辑器中会出现这些问题。或者,.

可以使用在线/离线验证器来验证JSON。可以使用在线/离线验证器来验证JSON。就我个人而言,我只是将其封装在
[]
中,使其成为一个数组。使循环更容易..就我个人而言,我只是将其封装在
[]
中,使其成为一个数组。使循环更容易。。