动态HTML元素中的多个JSON或JavaScript对象

动态HTML元素中的多个JSON或JavaScript对象,javascript,html,json,javascript-objects,Javascript,Html,Json,Javascript Objects,我想将整个JSON对象传递给动态HTML元素 近似 我使用以下代码来实现此功能- btoa(unescape(encodeURIComponent(JSON.stringify(dataItem)))) // To escape special characters and encode JSON '<p><a href="#" onclick="passJson(\'' + dataItem + '\')">Check console log</a>&

我想将整个JSON对象传递给动态HTML元素

近似

我使用以下代码来实现此功能-

btoa(unescape(encodeURIComponent(JSON.stringify(dataItem))))   // To escape special characters and encode JSON

'<p><a href="#" onclick="passJson(\'' + dataItem + '\')">Check console log</a></p>';

JSON.parse(atob(obj))  // to decode back to JSON
1。如果有改进方案,你能提到吗?我担心这种解决方法不适用于更大的JSON对象。

2。还有,我犯了什么错误?

不想使用
属性
。 我不想在HTML中传递字符串化的JSON对象

不要担心
giveData()
被多次调用。我很懒,同时也不想要全局数组变量


谢谢。

我想你总是会得到所有点击的最后一项。您可以检查是否将项添加到另一项中
将再次调用不好的函数。在for循环
giveData()中相同。length
也将再次调用相同的函数,因此尝试初始化giveData()使用一个变量,然后使用它,而不是调用函数。还有一件事,因为您有对象数组,您可以选择forEach。或者让我们知道您希望通过这样做实现什么

        var arrayObj= [{"context":{"dialog":{},"suggestions":["confusion","Were you looking for this?",[{"name":"Claim ratio","iid":"dkjw343-efkn3-34klffd"}]],"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"namespace":"sales"},"conversation_metadata":{"preprocessed_utterance":"solvency percentage","updated_context":{"dialog":{},"suggestions":["confusion","Were you looking for this?",[{"name":"Claim ratio","iid":"dkjw343-efkn3-34klffd"}]],"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"namespace":"sales"},"matching_intent":"fallback-intent","top_matches":[["dkjw343-efkn3-34klffd",0.4999999999999999,{"final_vector":{"solvency":1,"percentage":1},"concepts_interchanged":[],"concept_vector":{"percentage":1,"claim":1},"unknown_concept_query":[],"optional_concept":[],"question":"Claim ratio","weights":[["percentage",0.7071067811865475,1]]}],["jd34jn-43jn3-3kjnewd",0,{"final_vector":{"solvency":1,"calculate":1},"concepts_interchanged":[["calculate","percentage"]],"concept_vector":{"commission":1,"agent":1},"unknown_concept_query":[],"optional_concept":[],"question":"Agent commission","weights":[]}]],"status":"SUCCESS","time":0.020668506622314453},"end_time":"Fri, 28 Jul 2017 07:47:48 -0000","iid":"djnfdk-32n23nkjnk-23nkkjkjd","matched_query":"fallback-intent","flag":"DISLIKE","status":"SUCCESS","start_time":"Fri, 28 Jul 2017 07:47:48 -0000","response":[{"type":"text","content":"Sorry, I am unable to answer your query!","version":"0.0.0","interface":"web"}],"query":"solvency ratio","confidence":0.4999999999999999},{"context":{"dialog":{},"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"auto_suggest_selection":"dkjw343-efkn3-34klffd","previous_intent":"dkjw343-efkn3-34klffd","namespace":"sales"},"conversation_metadata":{"preprocessed_utterance":"claim percentage","updated_context":{"dialog":{},"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"auto_suggest_selection":"dkjw343-efkn3-34klffd","previous_intent":"dkjw343-efkn3-34klffd","namespace":"sales"},"matching_intent":"dkjw343-efkn3-34klffd","top_matches":[],"status":"SUCCESS","time":0.016078472137451172},"end_time":"Fri, 28 Jul 2017 07:47:52 -0000","iid":"sdlkmcllksd-23knlsd-32emmll32","matched_query":"dkjw343-efkn3-34klffd","flag":"CLEAR","status":"SUCCESS","start_time":"Fri, 28 Jul 2017 07:47:52 -0000","response":[{"type":"text","content":"Claim Settlement Ratio = Total Claims Approved (paid to nominees) divided by Total Claims Received by the Company.\nThe overall company claim ratio was 95% as on 2015-16.\nFor more specific claim ratios, please contact the claims team.\n","version":"0.0.0","interface":"web"}],"query":"Claim ratio","confidence":1}];

        var htmlStr = '';

        function passJson(obj) {
            console.log(JSON.parse(atob(obj)));
        }
        arrayObj.forEach(function(dataItem){                            
             var dataItem = btoa(unescape(encodeURIComponent(JSON.stringify(dataItem))))

            var divStr='<p><a href="#" onclick="passJson(\'' + dataItem + '\')">Check console log</a></p>';

            htmlStr += divStr;
        });            
        $('body').append(htmlStr);
var arrayObj=[{“上下文”:{“对话”:{},“建议”:[“混淆”,“你在找这个吗?”,[{“名称”:“索赔比率”,“iid”:“dkjw343-efkn3-34klffd”}],“用户”:{“指定”:“FLS”,“客户iid”:1,“频道”:“银行”,“名称”:“Sujit”,“仪表盘iid”:1},“名称空间”:“销售”},“对话元数据”:“预处理的话语”:“偿付能力百分比”、“最新情况”:{“对话”:{},“建议”:[“困惑”,“你在找这个吗?”,[{“名称”:“索赔比率”,“iid”:“dkjw343-efkn3-34klffd”}],“用户”:{“指定”:“FLS”,“客户iid”:1,“渠道”:“银行”,“名称”:“Sujit”,“仪表盘iid”:1},“名称空间”:“销售”},“匹配意向”:“后备意向”,“顶级匹配”:[”dkjw343-efkn3-34klffd,0.4999999999,{“最终概念”:{“偿付能力”:1,“百分比”:1},“概念互换”:[],“概念向量”:{“百分比”:1,“索赔”:1},“未知概念查询”:[],“可选概念”:[],“问题”:“索赔比率”,“权重”:[“百分比”,0.7071067811865475,1],“jd34jn-43jn3-3KEWD”,0,““最终概念”:“偿付能力”:{“:1},“概念交换”:[“计算”、“百分比”],“概念向量”:[“佣金”:1,“代理”:1},“未知概念查询”:[],“可选概念”:[],“问题”:“代理佣金”,“权重”:[]}],“状态”:“成功”,“时间”:0.0206650662314453},“结束时间”:“2017年7月28日星期五07:47:48-0000”,“iid”:“djnfdk-32N23NKKJNK JD”,“匹配查询”:”“回退意图”,“标志”:“不喜欢”,“状态”:“成功”,“开始时间”:“Fri,2017年7月28日07:47:48-0000”,“响应”:[{“类型”:“文本”,“内容”:“抱歉,我无法回答您的查询!”,“版本”:“0.0.0”,“界面”:“web”}],“查询”:“偿付能力比率”,“信心”:0.4999999999999999999999999},{“上下文”:{“对话框”:{},“用户”:{“指定”:“FLS”,“客户iid”:1,”频道“:”BANCA“,”name“:”Sujit“,”dashboard_iid“:”1},“自动建议选择“,”dkjw343-efkn3-34klffd“,”先前意图“,”dkjw343-efkn3-34klffd“,”命名空间“:”sales“,”对话元数据“:{”预处理话语“,”索赔百分比“,”更新的上下文“,{”对话框“,”用户“:{”名称“,”FLS“,”客户“,”1,“频道“:”BANCA“,”名称“:”Sujit“,”仪表盘:1},“自动建议选择”:“dkjw343-efkn3-34klffd”,“上一次意向”:“dkjw343-efkn3-34klffd”,“名称空间”:“销售”},“匹配意向”:“dkjw343-efkn3-34klffd”,“顶级匹配”:[],“状态”:“成功”,“时间”:0.016078472137451172},“结束时间”:“2017年7月28日星期五07:47:52-0000”,“iid”:“sdlkmcllksd-23K32”,“匹配查询”:dkjw343-efkn3-34klffd,“标志”:“清楚”,“状态”:“成功”,“开始时间”:“2017年7月28日星期五07:47:52-0000”,“回复”:[{“类型”:“文本”,“内容”:“索赔结算比率=批准的索赔总额(支付给被提名人)”除以公司收到的索赔总额。\n截至2015-16年,公司总索赔率为95%。\n有关更具体的索赔比率,请联系索赔团队。\n,“版本”:“0.0.0”,“界面”:“web”}],“查询”:“索赔比率”,“置信度”:1}];
var htmlStr='';
函数passJson(obj){
log(JSON.parse(atob(obj));
}
arrayObj.forEach(函数(数据项){
var dataItem=btoa(unescape(encodeURIComponent(JSON.stringify(dataItem)))
var divStr='

'; htmlStr+=divStr; }); $('body').append(htmlStr);
我想你总是会得到所有点击的最后一个项目。你可以检查是否将项目添加到另一个项目中。另外,
var dataItem=giveData()[I];
将再次调用不好的函数。同样的for循环
giveData()。length
也将再次调用相同的函数,因此尝试初始化giveData()使用一个变量,然后使用它,而不是调用函数。还有一件事,因为您有对象数组,您可以选择forEach。或者让我们知道您希望通过这样做实现什么

        var arrayObj= [{"context":{"dialog":{},"suggestions":["confusion","Were you looking for this?",[{"name":"Claim ratio","iid":"dkjw343-efkn3-34klffd"}]],"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"namespace":"sales"},"conversation_metadata":{"preprocessed_utterance":"solvency percentage","updated_context":{"dialog":{},"suggestions":["confusion","Were you looking for this?",[{"name":"Claim ratio","iid":"dkjw343-efkn3-34klffd"}]],"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"namespace":"sales"},"matching_intent":"fallback-intent","top_matches":[["dkjw343-efkn3-34klffd",0.4999999999999999,{"final_vector":{"solvency":1,"percentage":1},"concepts_interchanged":[],"concept_vector":{"percentage":1,"claim":1},"unknown_concept_query":[],"optional_concept":[],"question":"Claim ratio","weights":[["percentage",0.7071067811865475,1]]}],["jd34jn-43jn3-3kjnewd",0,{"final_vector":{"solvency":1,"calculate":1},"concepts_interchanged":[["calculate","percentage"]],"concept_vector":{"commission":1,"agent":1},"unknown_concept_query":[],"optional_concept":[],"question":"Agent commission","weights":[]}]],"status":"SUCCESS","time":0.020668506622314453},"end_time":"Fri, 28 Jul 2017 07:47:48 -0000","iid":"djnfdk-32n23nkjnk-23nkkjkjd","matched_query":"fallback-intent","flag":"DISLIKE","status":"SUCCESS","start_time":"Fri, 28 Jul 2017 07:47:48 -0000","response":[{"type":"text","content":"Sorry, I am unable to answer your query!","version":"0.0.0","interface":"web"}],"query":"solvency ratio","confidence":0.4999999999999999},{"context":{"dialog":{},"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"auto_suggest_selection":"dkjw343-efkn3-34klffd","previous_intent":"dkjw343-efkn3-34klffd","namespace":"sales"},"conversation_metadata":{"preprocessed_utterance":"claim percentage","updated_context":{"dialog":{},"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"auto_suggest_selection":"dkjw343-efkn3-34klffd","previous_intent":"dkjw343-efkn3-34klffd","namespace":"sales"},"matching_intent":"dkjw343-efkn3-34klffd","top_matches":[],"status":"SUCCESS","time":0.016078472137451172},"end_time":"Fri, 28 Jul 2017 07:47:52 -0000","iid":"sdlkmcllksd-23knlsd-32emmll32","matched_query":"dkjw343-efkn3-34klffd","flag":"CLEAR","status":"SUCCESS","start_time":"Fri, 28 Jul 2017 07:47:52 -0000","response":[{"type":"text","content":"Claim Settlement Ratio = Total Claims Approved (paid to nominees) divided by Total Claims Received by the Company.\nThe overall company claim ratio was 95% as on 2015-16.\nFor more specific claim ratios, please contact the claims team.\n","version":"0.0.0","interface":"web"}],"query":"Claim ratio","confidence":1}];

        var htmlStr = '';

        function passJson(obj) {
            console.log(JSON.parse(atob(obj)));
        }
        arrayObj.forEach(function(dataItem){                            
             var dataItem = btoa(unescape(encodeURIComponent(JSON.stringify(dataItem))))

            var divStr='<p><a href="#" onclick="passJson(\'' + dataItem + '\')">Check console log</a></p>';

            htmlStr += divStr;
        });            
        $('body').append(htmlStr);
var arrayObj=[{“上下文”:{“对话”:{},“建议”:[“混淆”,“你在找这个吗?”,[{“名称”:“索赔比率”,“iid”:“dkjw343-efkn3-34klffd”}],“用户”:{“指定”:“FLS”,“客户iid”:1,“频道”:“BANCA”,“名称”:“Sujit”,“仪表盘iid”:1},“名称空间”:“销售”},“对话元数据”:“预处理的话语”:偿付能力百分比,“更新的上下文”:{“对话”:{},“建议”:[“困惑”,“你在找这个吗?”,[{“名称”:“索赔比率”,“iid”:“dkjw343-efkn3-34klffd”}],“用户”:{“指定”:“FLS”,“客户iid”:1,“渠道”:“银行”,“名称”:“Sujit”,“仪表盘iid”:1},“名称空间”:“销售”},“匹配意图”:“后备意图”,“顶级匹配”:[“dkjw343-efkn3-34klffd,0.4999999999,{“最终概念”:{“偿付能力”:1,“百分比”:1},“概念互换”:[],“概念向量”:{“百分比”:1,“索赔”:1},“未知概念查询”:[],“可选概念”:[],“问题”:“索赔比率”,“权重”:[“百分比”,0.7071067811865475,1],“jd34jn-43jn3-3KEWD”,0,“最终概念”:{,
        var arrayObj= [{"context":{"dialog":{},"suggestions":["confusion","Were you looking for this?",[{"name":"Claim ratio","iid":"dkjw343-efkn3-34klffd"}]],"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"namespace":"sales"},"conversation_metadata":{"preprocessed_utterance":"solvency percentage","updated_context":{"dialog":{},"suggestions":["confusion","Were you looking for this?",[{"name":"Claim ratio","iid":"dkjw343-efkn3-34klffd"}]],"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"namespace":"sales"},"matching_intent":"fallback-intent","top_matches":[["dkjw343-efkn3-34klffd",0.4999999999999999,{"final_vector":{"solvency":1,"percentage":1},"concepts_interchanged":[],"concept_vector":{"percentage":1,"claim":1},"unknown_concept_query":[],"optional_concept":[],"question":"Claim ratio","weights":[["percentage",0.7071067811865475,1]]}],["jd34jn-43jn3-3kjnewd",0,{"final_vector":{"solvency":1,"calculate":1},"concepts_interchanged":[["calculate","percentage"]],"concept_vector":{"commission":1,"agent":1},"unknown_concept_query":[],"optional_concept":[],"question":"Agent commission","weights":[]}]],"status":"SUCCESS","time":0.020668506622314453},"end_time":"Fri, 28 Jul 2017 07:47:48 -0000","iid":"djnfdk-32n23nkjnk-23nkkjkjd","matched_query":"fallback-intent","flag":"DISLIKE","status":"SUCCESS","start_time":"Fri, 28 Jul 2017 07:47:48 -0000","response":[{"type":"text","content":"Sorry, I am unable to answer your query!","version":"0.0.0","interface":"web"}],"query":"solvency ratio","confidence":0.4999999999999999},{"context":{"dialog":{},"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"auto_suggest_selection":"dkjw343-efkn3-34klffd","previous_intent":"dkjw343-efkn3-34klffd","namespace":"sales"},"conversation_metadata":{"preprocessed_utterance":"claim percentage","updated_context":{"dialog":{},"user":{"designation":"FLS","client_iid":1,"channel":"BANCA","name":"Sujit","dashboard_iid":1},"auto_suggest_selection":"dkjw343-efkn3-34klffd","previous_intent":"dkjw343-efkn3-34klffd","namespace":"sales"},"matching_intent":"dkjw343-efkn3-34klffd","top_matches":[],"status":"SUCCESS","time":0.016078472137451172},"end_time":"Fri, 28 Jul 2017 07:47:52 -0000","iid":"sdlkmcllksd-23knlsd-32emmll32","matched_query":"dkjw343-efkn3-34klffd","flag":"CLEAR","status":"SUCCESS","start_time":"Fri, 28 Jul 2017 07:47:52 -0000","response":[{"type":"text","content":"Claim Settlement Ratio = Total Claims Approved (paid to nominees) divided by Total Claims Received by the Company.\nThe overall company claim ratio was 95% as on 2015-16.\nFor more specific claim ratios, please contact the claims team.\n","version":"0.0.0","interface":"web"}],"query":"Claim ratio","confidence":1}];

        var htmlStr = '';

        function passJson(obj) {
            console.log(JSON.parse(atob(obj)));
        }
        arrayObj.forEach(function(dataItem){                            
             var dataItem = btoa(unescape(encodeURIComponent(JSON.stringify(dataItem))))

            var divStr='<p><a href="#" onclick="passJson(\'' + dataItem + '\')">Check console log</a></p>';

            htmlStr += divStr;
        });            
        $('body').append(htmlStr);