Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用json2html,但可以';看不到JSON对象_Json_Mongodb - Fatal编程技术网

使用json2html,但可以';看不到JSON对象

使用json2html,但可以';看不到JSON对象,json,mongodb,Json,Mongodb,我一直在一个项目中实现json2html,我遇到了一个小问题。基本上,我的转换是运行的,但它没有像应该的那样包含JSON对象 我已经设置好了对MongoDB的调用,JSON数据作为字符串返回。我将该字符串传递到“var data”中,然后用转换代码将其传递到json2html.transform(data,transform)中 以下是我的转换代码示例: 转化=[ {"tag":"html","children":[ {"tag":"body","children":[

我一直在一个项目中实现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对象。你知道这里可能有什么问题吗?

汤姆说得对${传记资料,随便什么}本该解决这个问题的。请尝试此代码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标记

try${biographic data.firstName}我已经做了您建议的更改,但不幸的是,我仍然没有看到JSON对象。只有html标记和其中的纯文本。传入嵌入对象?嘿,查德。我尝试将代码调整到第二个块中的代码,但我仍然看到相同的问题。所有HTML标记和纯文本都正确呈现,但没有JSON对象。我已经纠正了上面您和Tom指出的命名问题,现在它读取${biographic data.whatever}。很明显,转换正在工作,我知道我正在返回JSON数据,因为我可以在控制台中打印出来,而且看起来是正确的。但是这两种方法似乎不能很好地协同工作。。结果发现,我的JSON数据如何被传递到json2html.transform中只是一个问题。当我的JSON数据从MongoDB返回时,它将进入“数据”,但为了让它在转换中正常工作,我必须将其设置为json2html.transform(JSON.stringify(data),transform)。但是,您和Tom在上面提出的更正数据命名的建议也是非常重要的,因此,谢谢你们。