Javascript 从json对象创建定义列表

Javascript 从json对象创建定义列表,javascript,json,list,structure,Javascript,Json,List,Structure,我尝试创建一个工作的json对象结构来创建定义列表。 看看我在这里尝试做什么: 通过执行此JS片段,我尝试从JSON对象创建markupt: $.each(x["dl"], function(i,v){ console.log(this.dt, this.dd); }); 使用变量x,我尝试创建以下标记: <dl> <dt>head 1</dt> <dd>listitem 1</dd> <dd&

我尝试创建一个工作的json对象结构来创建定义列表。 看看我在这里尝试做什么:

通过执行此JS片段,我尝试从JSON对象创建markupt:

$.each(x["dl"], function(i,v){
    console.log(this.dt, this.dd);
});
使用变量x,我尝试创建以下标记:

<dl>
    <dt>head 1</dt>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>

    <dt>head 2</dt>
    <dd>listitem 2</dd>
    <dd>listitem 2</dd>   
</dl>

<dl>
    <dt>head 1</dt>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>
    <dd>listitem 1</dd>

    <dt>head 2</dt>
    <dd>listitem 2</dd>
    <dd>listitem 2</dd>   
</dl>

总目1
清单项目1
清单项目1
清单项目1
清单项目1
清单项目1
总目2
清单项目2
清单项目2
总目1
清单项目1
清单项目1
清单项目1
清单项目1
清单项目1
总目2
清单项目2
清单项目2
我需要创建标记。我在JSON结构中做错了什么?

首先,这不是JSON。这只是一个JavaScript对象。JSON是JavaScript对象的字符串表示形式

其次,您的对象不正确。您不能有多个
dt
属性,我建议将其设置为一个数组<代码>“dt”:“头1”{无效。另外,
x
应该是一个对象,而不是(对象的)数组

我建议把你的物品做成这样:

var x = {
    "dl": [{
        "dt": "head 1",
        "dd": ["listitem 1", "listitem 1", "listitem 1", "listitem 1", "listitem 1"]
    }, {
        "dt": "head 2",
        "dd": ["listitem 2", "listitem 2"]
    }]
};
x
是包含
dl
属性的对象。
x.dl
是包含对象的数组。这些对象包含
dt
dd
属性

现在,您的代码段将正常工作:

$.each(x["dl"], function(i,v){ // you can also use "x.dl"
    console.log(this.dt, this.dd);
});
从这个对象很容易生成所需的HTML。

首先,这不是JSON。这只是一个JavaScript对象。JSON是JavaScript对象的字符串表示形式

其次,您的对象不正确。您不能有多个
dt
属性,我建议将其设置为数组。
“dt”:“头1”{
无效。此外,
x
应该是对象,而不是(对象的)数组

我建议把你的物品做成这样:

var x = {
    "dl": [{
        "dt": "head 1",
        "dd": ["listitem 1", "listitem 1", "listitem 1", "listitem 1", "listitem 1"]
    }, {
        "dt": "head 2",
        "dd": ["listitem 2", "listitem 2"]
    }]
};
x
是包含
dl
属性的对象。
x.dl
是包含对象的数组。这些对象包含
dt
dd
属性

现在,您的代码段将正常工作:

$.each(x["dl"], function(i,v){ // you can also use "x.dl"
    console.log(this.dt, this.dd);
});

通过此对象可以轻松生成所需的HTML。

请在此处发布代码。这样可以帮助两年后出现相同问题的人。您需要告诉我们更多有关您尝试执行的操作的信息。这不够具体,问题可能已经解决。您的对象声明无效。
“dt:“head 1”
后面紧跟着
{
。您需要在它后面加逗号或
}
。您的对象无效。您不能有多个
dt
属性(最后一个属性将覆盖前面的属性)。
“dt”:“head 1”{
这是无效的。好吧,我在JSFIDLE的第17版中尝试过更改,但仍然不起作用,还有什么问题吗?请在这里发布代码。这样可以帮助两年后有同样问题的人。你需要告诉我们更多关于你正在尝试做的事情。这不够具体,问题可能是be已关闭。您的对象声明无效。标有
“dt”:“head 1”
的部分后面紧跟着
{
。您需要在它后面加逗号或
}
。您的对象无效。您不能有多个
dt
属性(最后一个属性将覆盖以前的属性)。
“dt”:“head 1”{
这是无效的。好吧,我试图在JSFIDLE的第17版中更改它,但它仍然不起作用,还有什么问题吗?火箭,非常感谢:在我的JSFIDLE的第22版中,我根据您的提示得到了它。我现在没有得到的是:需要做哪些更改才能使对象成为JSON对象?我经常“使用”“Ajax请求中的JSON,但从来没有构建过一些-我阅读了文档,但显然理解错了..Greets没有“JSON对象”这样的东西。JSON只是JavaScript对象的字符串表示。
{a:12}
是一个对象,
'{a:12}”“
是JSON。你可以使用
JSON.stringify
转换为JSON,使用
JSON.parse
转换为对象。这取决于你想对对象做什么。3年后..我刚刚读了你的最后一条评论:-)对于所有读过它的人来说:有一个东西叫做JSONObject(不太好..{“a”:“12”)Rocket,非常感谢:在我的JSFIDLE第22版中,我是按照你的提示得到的。我现在没有得到什么:要使对象成为JSON对象,需要做哪些更改?我经常在Ajax请求中“使用”JSON,但从来没有构建过一些—我修改了文档,但显然理解错了。.Greets没有JSON这样的东西“JSON对象”。JSON只是JavaScript对象的字符串表示。
{a:12}
是一个对象,
{a:12}“
是JSON。你可以使用
JSON.stringify
转换为JSON,使用
JSON.parse
转换为对象。这取决于你想对对象做什么。3年后..我刚刚读了你的最后一条评论:-)对于所有读过它的人来说:有一个东西叫做JSONObject(不太好..{“a”:“12”)