Javascript JSON.parse 字符串 onclick 内联

     2023-05-08     174

关键词:

【中文标题】Javascript JSON.parse 字符串 onclick 内联【英文标题】:Javascript JSON.parse string onclick in-line 【发布时间】:2018-11-18 02:13:32 【问题描述】:

我正在使用 jquery 将 HTML 附加到 ID;具体来说,我无法将 JSON 格式的字符串放入元素的 onclick 参数中。我故意希望在单击时解析 JSON,并且对于此特定工作中存在于 DOM 中的 JSON 完全可以接受。

我认为问题与正确转义引号有关(因为 Chrome Inspect Elements 调试显示每个 JSON 元素都被视为 HTML 标记而不是字符串 - 请参阅 https://ibb.co/eHOgq8 以获取有关 DOM 的屏幕截图正在解释中)

var str = '"artist":"So and So","title":"Not Relevant"';

$("#d").append('<ul><li><a onclick="JSON.parse(\'' + str + '\')" title="NA">Link</a></li></ul>')

我尝试过使用多种转义机制和引号类型以及一些本机 Javascript 转义,但没有得到任何结果。 2小时后,我不得不求助。非常感谢您。

【问题讨论】:

您真正想通过将 JSON 放入 onClick 来实现什么?现在我没有任何意义。 【参考方案1】:

试试这个:

var str = '"artist":"So and So","title":"Not Relevant"';

var jsonObj = JSON.parse(str);

$("#d").append('<ul><li><a onclick="alert(JSON.stringify(jsonObj))" title="NA">Link</a></li></ul>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="d"></div>

【讨论】:

非常感谢您对我有/有的问题的迟到但直接的回答。非常感谢!【参考方案2】:

不要尝试分配具有内联属性的处理程序 - 这与 eval 一样糟糕,并且正如您所遇到的那样,可能会导致转义字符出现令人困惑的问题。相反,请使用 Javascript 正确附加处理程序,例如:

var str = '"artist":"So and So","title":"Not Relevant"';
$('#div').append('<ul><li><a title="etc">link</a></li></ul>');
$('div a').on('click', () => console.log(JSON.parse(str)));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div"></div>

【讨论】:

感谢您的快速回复!也许我没有提供足够的背景来解决我的真正问题。以上将起作用,但是当我编写更新的 HTML 时,我正处于循环的中间,因此每个 click 事件都需要针对一个唯一的 div。此外,我已经可以让它以正确的格式登录到控制台,但是当注入到 DOM 中时,它开始认为 json 键/值对实际上是 HTML 元素(我太早捕捉到 onClick 的结束引号思考)。真实代码见ibb.co/kv9PtT。 JSON 是可信的(用户不能更改/注入)。希望你能帮忙! 这只是一个示例 - 如果您有多个 as,那么您当然必须使选择器更具体,例如定位最后一个 a 或为a 之前的 appending 它。如果代码与您的问题相关,请将其发布在您的问题中(请参阅如何提问页面)

Javascript JSON.parse 字符串 onclick 内联

】JavascriptJSON.parse字符串onclick内联【英文标题】:JavascriptJSON.parsestringonclickin-line【发布时间】:2018-11-1802:13:32【问题描述】:我正在使用jquery将HTML附加到ID;具体来说,我无法将JSON格式的字符串放入元素的onclick参数中。我故意... 查看详情

JSON.parse() 在 pentaho 的 javascript 中不起作用

】JSON.parse()在pentaho的javascript中不起作用【英文标题】:JSON.parse()notworkinginjavascriptinpentaho【发布时间】:2016-04-1206:38:19【问题描述】:我正在尝试使用ModifiedJavaScriptValue步骤从字符串形成数组。这是我解析字符串并形成JSON对象的... 查看详情

json.parse()与json.stringify()

JSON.parse()方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作)。语法JSON.parse(text[,reviver])参数text要被解析成JavaScript值的字符串,查看JSON对象学习... 查看详情

json.parse

把字符串为JSON格式的数据转换为Javascript对象把javascript对象转换为JSON格式的字符串数据<head><metacharset="UTF-8"><title>Document</title></head><body><divid="demo"></div><script&g 查看详情

json.stringify()/json.parse()

JSON.stringify()这个方法可以把javascript对象转换成json字符串。JSON.parse()这个方法可以把json字符串转换成javascript对象。【下面来看一下这两个方法的详细解答】json数据中没有变量和结尾的分号,并且数据必须是用双引号引起来的,... 查看详情

json.parse()

...一般是字符串。我们可以使用JSON.parse()方法将数据转换为JavaScript对象。语法JSON.parse(text[,reviver]) 参数说明:text:必需,一个有效的JSON字符串。reviver: 可选,一个转换结果的函数,将为对象的每个成员调用此函数。JSON解析... 查看详情

JSON.parse:意外字符

...phpjquery传递一个json,在进入一个sql查询数组并得到以下javascript错误之后。JSON.parse:unexpectedcharacter返回sql结果的函数:publicfunctionselectassocSql($sql)$i=0 查看详情

javascript判断是否为json字符串

functionisJSON(str)if(typeofstr!='string')//1、传入值必须是字符串console.log('Itisnotastring!['+str+']')returnfalse;tryvarobj=JSON.parse(str);//2、仅仅通过JSON.parse(str)ÿ 查看详情

javascript判断是否为json字符串

functionisJSON(str)if(typeofstr!='string')//1、传入值必须是字符串console.log('Itisnotastring!['+str+']')returnfalse;tryvarobj=JSON.parse(str);//2、仅仅通过JSON.parse(str)ÿ 查看详情

javascript-知识笔记

1.onSubmit="returnfunction()";2. <inputtype="text"name="fname"required>3. varobj=JSON.parse(text); //JavaScript内置函数JSON.parse()将字符串转换为JavaScript对象  JSON.stringify() //用于将值转换为JSON字 查看详情

json.parse()方法解析一个json字符串

....parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象。可以提供可选的reviver函数以在返回之前对所得到的对象执行变换。语法EDITJSON.parse(text[,reviver])参数text要被解析成JavaSctipt值的字符串,查看 JSON ... 查看详情

json序列化

...的对象,有两个方法:SON.stringify()和JSON.parse()。功能:把JavaScript对象序列化为JSON字符串(JavaScript对象(Object)转换成JSON数据传输)语法:JSON.stringify(value[,replacer[,space]])=>JSON.stringify(value,replacer,space)功能:把JSON字符串解析为原生Jav... 查看详情

javascript 拆分和 JSON.parse

】javascript拆分和JSON.parse【英文标题】:javascriptsplitandJSON.parse【发布时间】:2011-07-2615:28:30【问题描述】:我想使用javascript解析JSON格式的数组。我写了以下代码。vardata="abc,xyz,pqr";vardata_array=data.split(\',\');vardata_parsed=JSON.parse(data_... 查看详情

37.javascript对象与json格式的转换,json.stringifyjson.parse方法的使用方法和注意事项(代码片段)

...量自定义toJSON方法JSON.parse使用reviver总结JSON处理JSON(JavaScriptObjectNotation)是JavaScript表达值和对象的通用数据格式,其本质就是符合一定规范的字符串。由于JSON的优良特性 查看详情

javascript安全的json.parse(代码片段)

查看详情

你不知道的json.stringify和json.parse

 json是JavaScript对象表示法(JavaScript Object Notation),是一种简单的数据格式,类似于XML,其格式为名称/值对,数据用逗号隔开,名称必须用双引号括起来。例如:{"name":"wumomo",age:25}关于需要注意的几点:1、名称必须用双... 查看详情

javascript-问题集-含function的json对象与json字符串之间相互转换

基本的转换为:JSON.parse与JSON.stringify。但是json数据中含function,则转换后,function会丢失,如:varjson={test:‘test‘,login:function(){alert("login")}} 经JSON.stringify后,login丢失。varjson={test:‘test‘}JSON.parse,结果一样。正确处理方法: 查看详情

javascript本地存储会话存储json.parse(代码片段)

查看详情