[英]JSON not well formed error
在下面的代碼中,
<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>
result.json
{
'name': 'Account1',
'marketValue': '10990',
'cash': '199926',
'legend': 'orange'
},
{
'name': 'Account2',
'marketValue': '156590',
'cash': '133856',
'legend': 'darkorange'
}
我看到JSON not well formed
錯誤。 result.json
位於同一文件夾中。
由於此錯誤, accountGrid
空。
在執行jQuery.getJSON
說not well formed
錯誤的錯誤是什么意思?
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"
}
}
[ 在線試用 ]
______
將對象放在數組中
或者,按照@Gerald Schneider的建議,將對象放置在數組中。 規范說value
(上面定義)可以是一個array
:
array
[]
[ elements ] # elements can multiple values, e.g. objects
因此,您的JSON如下所示:
[
{
"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>
另外,如果您想將entry的值附加到accountGrid
:
accountGrid = accountGrid.concat(entry);
______
將來編寫JSON
我建議您在支持JSON語法高亮顯示的IDE中編輯JSON文件,然后在編輯器中引發這些問題。 或者, 使用許多可用的在線工具之一 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.