2015-10-20 502 views
-2

我刚开始学习java和JSON,对于我的项目,我需要用java创建JSON文件,但是在JSONArray的末尾,它放置了\ r \ ñ,我如何删除/制作它,以便程序不会结束。 我的代码如下所示:如何删除JSON文件中的 r n

  JSONObject jsonobj = new JSONObject(); 
      JSONArray jsonnames = new JSONArray(); 
      JSONArray jsonrooms = new JSONArray(); 
      String[] rooms =["10","11","13"];     
      String[] names =["8028047","8099665","8100092","8100356","8100974"]; 

      for(int i = 0; i <names.length; i++){ 
       jsonnames.add(names[i]); 
      } 
      for(int i = 0; i < rooms.length; i++){ 
       jsonrooms.add(rooms[i]); 
      } 
      jsonobj.put("names", jsonnames); 
      jsonobj.put("rooms", jsonrooms); 

      try { 

       FileWriter writer = new FileWriter(References.dataJson);      
       writer.write(jsonobj.toJSONString()); 
       writer.close(); 
    -------------update 
       BufferedReader read = new BufferedReader(new FileReader(References.dataJson)); 
       String line = read.readLine(); 
       System.out.println(line); 
       line.replaceAll("\\r\\n", ""); 
       System.out.println(line); 
       PrintWriter write = new PrintWriter(References.dataJson); 
       write.println(line); 
--------------- 
       } 

      catch (IOException e) { 
       System.out.println("Error: FileWriter in main failed..."); 
       e.printStackTrace(); 
      } 

结果:

{"rooms": ["10","11","13\r\n"],"names":["8028047","8099665","8100092","8100356","8100974\r\n"]} 

我试图重写了的FileReader和PrintWriter的文件,并使用就行了.replace,但没有奏效。我用.replace(“\ r \ n”,“”);但那不起作用。

+0

不是它'的replaceAll()'? – redFIVE

+0

你的代码是无效的java,我发现很难相信你的json库是随机添加字符到你的一些数组值的末尾。我怀疑真正的问题在于,当你将它们添加到json结构中时,它们中的一些房间和名称值有回车换行符。请编辑您的问题,以显示您是如何获取房间和名称的。 – Kenster

回答

0

您不会在您的替换语句中转义您的斜杠。

您需要在每个正斜杠上加上另一个斜杠以供它们读取。

public static void main(String argv[]) { 
    String testStr = "This is \r\n a test\r\n"; 
    System.out.println(testStr); 
    System.out.println(testStr.replaceAll("\\r\\n", "")); 
} 

这将输出

This is 
a test 

This is a test 
+0

当我使用.replaceAll(“\\ r \\ n”)它清除整个行 – IDutch

+0

你做错了什么,然后,运行我的代码,它肯定有效。 – redFIVE

+0

当我运行你的程序时,它的工作,但是当我与我一起尝试它没有...我会把更新的问题 – IDutch