2017-07-26 4 views
1

を作成しようと、私はJSON配列を作成しようとしています:Velocityテンプレート - 配列は、引用符を追加していない - JSON配列

#set ($arrayCarousel = []) 
#foreach ($image in $product.images) 
    #set ($index = $index + 1) 
    $arrayCarousel.add(" 
    <div class='carousel__slide u-center'> 
     <img id='${index}' data-code='${product.code}' class='main_image' src='${image}' data-count='$!{product.viewCount}' /> 
    </div>" 
) 
#end 

<script id="prog-img-${product.code}" type="text/cycle"> 
    ${arrayCarousel} 
</script> 

しかし、それは、各配列項目の前後に引用符を作成しません。ベロシティテンプレートはかなり新しいですが、これを理解しようとしています。

答えて

0

これはいかがですか? escはベロシティツールEscapeToolへの参照である

$arrayCarousel.add("${esc.q} 
    <div class='carousel__slide u-center'> 
     <img id='${index}' data-code='${product.code}' class='main_image' src='${image}' data-count='$!{product.viewCount}' /> 
    </div>${esc.q}" 
) 

あなたがやっていることは、Java ListにStringを追加することです。その文字列は通常どおり二重引用符で区切られます。値に二重引用符も含めたい場合は、それらを追加してエスケープする必要があります。

しかし、そのコードは非常に脆いです。 product.codeまたはimageに二重引用符が含まれていると、JSONが破損します。

ArrayList.toString()にも似ていますが、有効なJavaScript配列とよく似ています。これも少し壊れやすいようです。

関連する問題