1

JSON オブジェクトを解析し、データをテーブルに表示しています。ただし、このデータの一部には、 < 、 > 、 >= 、 <= のような括弧の後に文字または数字が続きます。この場合、JSOn からのデータは次のようになります。

    (rRandomString<iamNotaTAG)

それを追加した後の結果のhtmlは次のとおりです。

    (rRandomString
    <iamNotaTAG) td="" <=""></<iamNotaTAG)>

更新 1: JSON を解析するために使用しているコードはこれです

    var json = $.parseJSON(data);
    for (var i = 0, maxlength = json.length; i < maxlength; i += 1 ) {
       my_string = json[i][1];
       result += "<tr class='my_result'>"
              + "<td>"+my_string+"</td></tr>"
    }
    $('#my_table tbody').html(result);
4

2 に答える 2

2

結果のhtmlに追加する前に文字列をエスケープするだけです(http://jsfiddle.net/cvAuB/

var json = [[0, "some str"], [1, "some <str>"], [0, "some str &&& <a>not a link</a>"]], },           result = "", current;


var tagsToReplace = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;'
}

function replaceTag(tag) {
    return tagsToReplace[tag] || tag;
}

function textify(str) {
    return str.replace(/[&<>]/g, replaceTag);
};
for (var i = 0, maxlength = json.length; i < maxlength; i++ ) {
   current = textify(json[i][1]);
   result += "<tr class='my_result'>"
          + "<td>"+current+"</td></tr>"
}

$('#my_table tbody').html(result);
于 2013-07-03T18:33:00.617 に答える