【问题标题】:Using json2html but can't see JSON objects使用 json2html 但看不到 JSON 对象
【发布时间】:2013-11-04 19:47:59
【问题描述】:

我一直在努力在我正在从事的项目中实现 json2html,但遇到了一个小问题。基本上,我的转换运行了,但它不包括应有的 JSON 对象。

我进行了一些设置,以便调用 MongoDB 并将 JSON 数据作为字符串返回。我将该字符串传递给“var data”,然后用我的转换代码将其传递给 json2html.transform(data,transform)。

这是我的转换代码示例:

变换 =[

{"tag":"html","children":[
    {"tag":"body","children":[
                     {"tag":"p","html":"First Name: ${firstName}"},
         {"tag":"p","html":"Last Name: ${lastName}"},
            ]}
    ]}

];

...以及来自 MongoDB 的相应 JSON 数据...

{ 传记数据: {名字:'约翰', 姓氏:'Doe', 出生日期:'1983 年 10 月 15 日', 电子邮件:'johndoe@gmail.com', 工作电话:'678-901-2345', 手机:'098-​​765-4321', 家庭电话:'123-456-7890' } }

...但是我的 HTML 看起来像这样:

名字:

姓氏:

找不到 JSON 对象。知道这里可能是什么问题吗?

【问题讨论】:

  • 试试 ${biographicData.firstName}
  • 我已经进行了您建议的更改,但不幸的是我仍然没有看到 JSON 对象。只是 html 标签和其中的纯文本。
  • 传入嵌入对象?

标签: json mongodb


【解决方案1】:

Tom 说得对 .. ${biographicData.whatever} 应该已经解决了这个问题。试试这个可以工作的代码spinet

var data = { biographicData: { firstName: 'John', lastName: 'Doe', birthDate: '10/15/1983', email: 'johndoe@gmail.com', workPhone: '678-901-2345', mobilePhone: '098-765-4321', homePhone: '123-456-7890' } };

var transform = {"tag":"html","children":[
    {"tag":"body","children":[
                     {"tag":"p","html":"First Name: ${biographicData.firstName}"},
         {"tag":"p","html":"Last Name: ${biographicData.lastName}"},
            ]}
    ]};

document.write(json2html.transform(data,transform));

不过,我建议您从转换中删除 html 和 body 标记,而是将其包含在它自己的 html 文件中。这样你就可以像这样传递一个值数组

var data = [{ biographicData: { firstName: 'John', lastName: 'Doe', birthDate: '10/15/1983', email: 'johndoe@gmail.com', workPhone: '678-901-2345', mobilePhone: '098-765-4321', homePhone: '123-456-7890' } }];

    var transform = [
             {"tag":"p","html":"First Name: ${biographicData.firstName}"},
             {"tag":"p","html":"Last Name: ${biographicData.lastName}"},   
     ];

    document.write(json2html.transform(data,transform));

否则,您最终会在生成的 html 中包含多个 html 和 head 标签

【讨论】:

  • 嘿乍得。我尝试将我的代码调整为第二个块中的代码,但我仍然看到同样的问题。所有 HTML 标记和纯文本都正确呈现,但没有 JSON 对象。而且我已经更正了您和汤姆在上面指出的命名问题,现在它显示为 ${biographicData.whatever}。
  • 很明显,转换正在工作,我知道我正在返回 JSON 数据,因为我能够在控制台中将其打印出来,并且看起来正确。但这两者似乎并没有很好地协同工作。
  • 最好在 jsfiddle 上重新创建问题并在此处发布链接.. jsfiddle.net
  • 所以事实证明,我的 JSON 数据是如何传递到 json2html.transform 中的。当我的 JSON 数据从 MongoDB 返回时,它会进入“数据”,但为了使其在转换中正常工作,我必须将其设置为 json2html.transform(JSON.stringify(data), transform)。但是您和汤姆在上面提出的更正数据命名的建议也很重要,所以谢谢你们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
相关资源
最近更新 更多