【问题标题】:How to create a json object contains html code如何创建一个json对象包含html代码
【发布时间】:2011-04-25 22:01:25
【问题描述】:

我有一个案例,我必须通过 json 对象从客户端发送一个 html 代码到服务器端,但是有一些问题是由 html 标签内的符号引起的,例如“,/ ...等,这会在json 对象。我尝试了很多方法来构建 json,但没有一个是正确的。我希望你清楚地理解我的情况。 这是我的 json 结构的一个例子:

{
   "html":"the html code injected dynamical here"
}

正如我所说,我的主要问题是我遇到了由 html 符号引起的问题,我该如何解决!请给我一个关于如何解决这个问题并将html代码成功解析为json对象的明确示例。

【问题讨论】:

    标签: php javascript json parsing


    【解决方案1】:

    我不确定您是如何构建 JSON 对象的,但如果您使用 json_encode()json_decode() 您应该不会对 HTML 字符有任何问题,它们会被正确转义。

    【讨论】:

      【解决方案2】:

      不确定如果我误读了问题,但要将 json 从 server 传递到 client,请使用 @ 987654322@

      http://php.net/manual/en/function.json-encode.php

      这应该对你有用,并且可以处理所有的转义。

      <?php
      header('Content-type: application/json');
      $json = array(
          'html'    =>    '<h1 style="color:#0F0">Hello World!</h1>'
      );
      echo json_encode($json);
      exit;
      

      嗯,刚刚从阅读文档中学到了这个花絮:

      json_encode() 无法使用 UTF-8 以外的字符集

      我不明白你为什么需要将 json 发送到服务器,也许你可以与我们分享原因或有人可以在 cmets 中启发我?

      【讨论】:

      • 如果您使用另一个字符集,则必须使用 iconv 之类的东西来进行字符集转换
      【解决方案3】:

      也许你可以使用 url 编码。

      【讨论】:

      • 怎么样!你能给我一个这样做的例子吗:)。我给你一个简单的结构只是为了简单,但我的实际结构包含的不仅仅是 html 代码。我尝试了编码来传递这些字符,但这对我没有帮助,我通过添加特殊字符来替换这些字符,以便在传递给 json 时传递。我们也经常使用这个功能,并且 html 是动态创建的。
      【解决方案4】:

      您可以对 html 进行编码。一些 html 编码和解码可以在这里找到: http://code.google.com/p/jsool/source/browse/jsool-site/js/util/Encoder.js?r=176

      你只需要 html.encode 和 html.decode 函数,这样你就可以做类似的事情

      function html_encode(string){
          return string.replace(/./g,function(chr, index){
                  return chr.match(/[\w\d]/) ? chr : "&#"+chr.charCodeAt(0)+";" ;
          });
      },
      function html_decode(string){
          return string.replace(/&#[0-9]+;/g,function(text,index){
                  return String.fromCharCode(text.match(/[0-9]+/)[0]);
          });
      }
      

      这样就可以了

      var html = html_encode(myhtml);
      {"html": html}
      

      使用 html_decode() 编码和恢复值。

      PS.: 抱歉,我没有测试过 html_encode 和 decode 函数,但在 google 上很容易找到。

      【讨论】:

        【解决方案5】:

        如果您使用 jQuery,这个 js 库可能会有所帮助。 http://www.rahulsingla.com/blog/2010/05/jquery-encode-decode-arbitrary-objects-to-and-from-json

        在您发送请求之前,在您的 javascript 中执行以下操作:

        var thing = {plugin: 'jquery-json', other: "blah-blah"};
        var encoded = $.JSON.encode(thing);

        然后在你将请求发送到 php 之后,这样做来解码:

        var thing = json_decode($_POST['thing']);

        你可以阅读更多关于这个here

        【讨论】:

          猜你喜欢
          • 2021-09-22
          • 1970-01-01
          • 2020-09-03
          • 2023-03-27
          • 1970-01-01
          • 2018-06-28
          • 2011-05-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多