【问题标题】:Print JSON to screen for use with cut and paste将 JSON 打印到屏幕以用于剪切和粘贴
【发布时间】:2011-10-04 23:16:54
【问题描述】:

这听起来真的很贫民窟,但我需要在浏览器屏幕上打印一些 Javascript,以便可以将其剪切并粘贴到另一个程序中。

我正在使用来自json2.jsJSON.stringify(),但是,它不会转义字符,例如引号和换行符 (",\n),它们实际上是 JSON 对象的控制部分,需要转义。

例如,我会得到这样的字符串,这些字符串在导入其他程序时会导致问题:

{
    string_property_01 : "He said "HI"";  // The string terminates after "He said "
}

我可以使用任何库来转义我需要在这里转义的所有字符吗?

谢谢!

【问题讨论】:

  • 如何将其打印到屏幕上?

标签: javascript json escaping stringify


【解决方案1】:

你确定这不仅仅是一个浏览器渲染的东西在欺骗你吗? JSON 库将正确转义字符以提供有效的 JSON 字符串。您是否尝试过将 json2.js 的输出与某些浏览器(如 chrome)的原生 JSON.stringify 进行比较?

【讨论】:

  • 看来我对问题的根源不正确。我使用的文本中有 html 标签,这些标签正在被渲染,特别是

    标签

  • 很高兴你知道了。如果您想显示看起来很原始的 JSON(并且对复制/粘贴有效),您需要使用 或 <pre> 标记并转义 HTML 实体:stackoverflow.com/questions/24816/… 了解一种方法。</pre>
【解决方案2】:

我执行以下操作,这是一个漂亮的 hack。

var g = {
    sampleFunc : function (data) {
        var dataAsText = JSON.stringify(data);
        var response = prompt('you can copy and paste this', dataAsText);
    }
}

// usage... 
g.sampleFunc({ id: "4", name: "John Smith" });

JavaScript 提示...一定会喜欢它。

【讨论】:

  • 这是个好主意,我想知道它是否可以处理大约 6mb 的文本?
  • 哈哈...如果不是...把它切成小块...我还有另一个建议...会发布
【解决方案3】:

选项 #2

var g = {
    sampleFunc2 : function (data) {
        var dataAsText = JSON.stringify(data);
        // w jquery
        $('#debugArea').text(dataAsText);
    }
}

// usage... 
g.sampleFunc2({ id: "4", name: "John Smith" });

在标记中:

<textarea id='debugArea' rows='10' cols='50'></textarea>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多