2017-09-27 12 views
-1

XMLJSONに、Javaを使用して解析しようとしています。私はJSON.parseにそれらを送信する前にこれらの文字を置換しようとしたが、このコード行が動作していない
replaceAllがエスケープ文字に作用しないXML

JSON.parse: bad control character in string literal 

JSON.parseは、この文字の上にこのエラーを投げています。これらの文字を完全に置換/削除するより良い方法はありますか?

String trim = desc.replaceAll("
", "\\n"); 

あなたが示されている例では、あなたが持っている完全なXML入力が含まれている場合

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
 
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
 
    veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
 
    commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
 
    velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
 
    occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
 
    mollit anim id est laborum. 
+1

JavaやJavaScriptを?だから、あなたが好きなのためにそれがpropperly JSONを逃れることができ、何かを探すために良いでしょうか – Phix

+1

はっきりjavaです。 JavaScriptには「String trim =」はありません – ControlAltDel

+0

@Phix XML> Java> JavaScript –

答えて

0

はそれを考え出した:

public static String cleanDescription(String desc){ 

     String trim = desc.replaceAll("<.*?>", ""); //removes html elements 
     //there's a phantom question mark that sometimes gets added to the the front and end of the string 
     if(!Character.isLetter(trim.charAt(0))) trim = trim.substring(1, trim.length()); 

     Integer charCount = 0; 
     for(int j = 1; j <= 3; j++){ 
      if(!Character.isLetter(trim.charAt(trim.length() - j)) && 
        !Character.isDigit(trim.charAt(trim.length() - j))) charCount++; 
     } 
     if(charCount >= 2) trim = trim.substring(0, trim.length() - (charCount - 1)); 


     Pattern pt = Pattern.compile("[^a-zA-Z0-9()\\.\\,]"); 
     Matcher match= pt.matcher(trim); 
     while(match.find()) 
     { 
      String s = match.group(); 
      trim = trim.replaceAll("\\" + s, " "); 
     } 

     return trim.trim(); 
    } 
0

を解析されるXMLは、XMLの構文解析されていません。

これはフラグメントであると仮定します。あなたのソリューションは1つのことだけをエスケープしますが、有効なJSONを取得するには、JSONで許可されていない、または不要な動作につながるすべての文字をエスケープする必要があります。

Java escape JSON String?

関連する問題