如何创建一个包含html代码的json对象

时间:2011-04-25 22:01:26

标签: php javascript json parsing

我有一个案例,我必须通过json对象从客户端向服务器端发送html代码,但是html标记内的符号会导致一些问题,例如“,/ ...等等,这会产生错误json对象。我尝试了很多方法来构建json但是没有一个是正确的。我跳了你清楚地了解我的情况。 这是我的json结构的一个例子:

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

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

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

不确定如果我误解了问题,但是将json从 服务器 传递到 客户端 ,请使用{ {1}}

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

这应该对你有用,并照顾所有的逃避。

json_encode()

嗯,刚从阅读文档中了解到这一点:

  

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

我看不出为什么你需要把json发送到服务器,也许你可以和我们分享原因,或者有人可以在评论中启发我?

答案 2 :(得分:0)

也许您可以使用网址编码。

答案 3 :(得分:0)

您可以对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:Sry,我没有测试出html_encode和解码功能,但很容易在谷歌找到一些。

答案 4 :(得分:0)

如果您使用的是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

的更多信息