代码之家  ›  专栏  ›  技术社区  ›  Bojan Kolano

在使用JSON时有没有办法转义字符?

  •  1
  • Bojan Kolano  · 技术社区  · 7 年前

    我已经有一段时间的问题了。。

    var content = '{"heading":"I am page heading","col":[{"text":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.<a href=\"javascript:; \"class=\"inline-link\">\"Duis autem veleum</a> iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi."}]}';
    

    这是我的JSON。

    $(document).ready(function(){
    
    //Json
    var obj = JSON.parse(hero);
    divData(obj);
    function divData(obj){
        for (i in obj.row.col){
            $('.col-10 .title').text(obj.row.col[i]);
        }
        for (i in obj.rows.col){
            $('.col-12 .title').text(obj.rows.col[0].title);
        }
        for (i in obj.rows.col){
            $('.col-12 .btn').text(obj.rows.col[1].button);
        }
    }
    
    var cont = JSON.parse(content);
    divData(cont);
    function divData(cont){
        for (i in cont){
            $('.content .row .col-12 .heading').text(cont.heading);
        }
    }
    

    <div class="wrapper">
            <section class="content">
                <div class="row">
                    <div class="col-12">
                        <h2 class="heading">
                        </h2>
                    </div>
                </div>
                <div class="row">
                    <div class="col-12">
                        <p class="text">
                            Lorem ipsum dolor sit amet, consectetuer 
                            adipiscing elit, sed diam nonummy nibh euismod 
                            tincidunt ut laoreet dolore magna aliquam erat 
                            volutpat. Ut wisi enim ad minim veniam, quis 
                            nostrud exerci tation ullamcorper suscipit 
                            lobortis nisl ut aliquip ex ea commodo consequat. 
                            <a href="javascript:;" class="inline-link">Duis autem veleum</a> iriure dolor in hendrerit in 
                            vulputate velit esse molestie consequat, vel 
                            illum dolore eu feugiat nulla facilisis at 
                            vero eros et accumsan et iusto odio dignissim 
                            qui blandit praesent luptatum zzril delenit 
                            augue duis dolore te feugait nulla facilisi.
                        </p>
                    </div>
                </div>
                <div class="row">
                    <div class="col-8">
                        <ul class="content-list">
                            <li>Duis autem vel eum iriure dolor in 
                                hendrerit
                            </li>
                            <li>Lorem ipsum dolor sit amet, 
                                consectetuer adipiscing elit, sed diam 
                                nonummy nibh euismod tincidunt ut laoreet 
                                dolore magna aliquam erat volutpat. Ut 
                                wisi enim ad minim veniam, quis nostrud 
                                exerci.
                            </li>
                            <li>Lbh euismod tincidunt ut laoreet 
                                dolore
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="row">
                    <div class="col-12">
                        <h3 class="sub-heading">
                            I am page subheading
                        </h3>
                    </div>
                </div>
                <div class="row">
                    <div class="col-12">
                        <p class="text">
                            At vero eos et accusamus et iusto 
                            odio dignissimos ducimus qui 
                            blanditiis praesentium voluptatum 
                            deleniti atque corrupti quos dolores 
                            et quas molestias excepturi sint 
                            occaecati cupiditate non provident, 
                            similique sunt in culpa qui officia 
                            deserunt mollitia animi, id est 
                            laborum et dolorum fuga. Et harum 
                            quidem rerum facilis est et expedita 
                            distinctio. Nam libero tempore, cum 
                            soluta nobis est eligendi optio cumque 
                            nihil impedit quo minus id quod maxime 
                            placeat facere possimus, omnis voluptas 
                            assumenda est, omnis dolor repellendus.
                        </p>
                    </div>
                </div>
                <div class="row">
                    <div class="col-12">
                        <p class="text last-txt">
                            Temporibus autem quibusdam et aut 
                            officiis debitis aut rerum necessitatibus 
                            saepe eveniet ut et voluptates repudiandae 
                            sint et molestiae non recusandae. Itaque earum 
                            rerum hic tenetur a sapiente delectus, ut aut 
                            reiciendis voluptatibus maiores alias 
                            consequatur aut perferendis doloribus 
                            asperiores repellat. 
                        </p>
                    </div>
                </div>
            </section>
        </div>
    

    在这个html中,我需要以类“heading”为目标。我觉得一切都好。我觉得一切都很好。我曾经 https://www.freeformatter.com/json-escape.html#ad-output

    Uncaught SyntaxError: Unexpected token j in JSON at position 328
    at JSON.parse (<anonymous>)
    at HTMLDocument.<anonymous> (main.js:23)
    at j (jquery.min.js:2)
    at k (jquery.min.js:2)
    

    有没有其他方法来转义这个字符,因为我需要使用链接?

    我试着这样逃跑。没用

    {
        "heading":"I am page heading",
        "col":[ {
            "text": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.<a href=\\"javascript:; \\"class=\\"inline-link\\">\\"Duis autem veleum</a> iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi."
        }
        ]
    }
    
    0 回复  |  直到 7 年前