如何从包含整数的未转义JSON数据中转义HTML-escape JSON数据

时间:2013-05-05 22:34:07

标签: json

我在使用转义的HTML JSON数据设置HTML属性时遇到问题。

我明白了:

  

Uncaught SyntaxError:时间戳的数据定义上的意外数字。

我可以在JSON中设置整数值吗?如何将此JSON数据转义为将其放入HTML数据表单数据属性?

这是我的代码:

<input name="file" type="file" id="uploadinput"
       class="cloudinary-fileupload" data-cloudinary-field="image_upload" 
       data-form-data="" ></input>
<script>
var data = { "timestamp":  2013-05-06 00:20:17.713, 
          "callback": "https://www.mcbjam.com/Scripts/vendor/cloudinary/html/cloudinary_cors.html",
          "signature": "99c35c139c34e2e42ba9e7af251686015c10e5f3", 
          "api_key": "789575445683743" };

$('#uploadinput').attr('src', encodeURI(data));
</script>

1 个答案:

答案 0 :(得分:2)

问题在于:

"timestamp":  2013-05-06 00:20:17.713

JavaScript没有日期文字,虽然您没有使用JSON(您使用的是不同的JavaScript object initializer),但FWIW JSON没有日期所有。您需要将其作为字符串或数字(例如,自The Epoch以来的毫秒数)等提供。

仅供参考,如果您在JavaScript对象上调用encodeURI,就像初始化程序无效一样,您会得到:"%5Bobject%20Object%5D"这不是您想要的。< / p>

如果要获取JavaScript对象并将其转换为JSON字符串,可以使用JSON.stringify来执行此操作。如果你把它放到DOM属性中,就不需要对它进行URI编码。所以:

$('#uploadinput').attr('src', JSON.stringify(data));

但是,JSON没有日期,所以你必须在上述工作之前处理它。