如何避免在 json 字符串中额外嵌套
How to avoid extra nesting in json string
我尝试根据 wikipedia 中的语法创建 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,
生成的。
您正在为 data
变量使用列表。这就是为什么在 JSON 正文的开头和结尾有括号。要克服这个问题,您可以在 data
变量中声明整个 JSON 主体,例如:
data = {
"firstname": "test",
(...)
"address": [{
"streetAddress": "test"
(...)
}]
}
我尝试根据 wikipedia 中的语法创建 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所示的结构?
字符串是在 Ajax 请求中用 jsonData : data,
生成的。
您正在为 data
变量使用列表。这就是为什么在 JSON 正文的开头和结尾有括号。要克服这个问题,您可以在 data
变量中声明整个 JSON 主体,例如:
data = {
"firstname": "test",
(...)
"address": [{
"streetAddress": "test"
(...)
}]
}