grails框架中讀取txt文件內容將內容轉換為json格式,出現異常Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at character 1 of [...]


Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at character 1 of [data:[[.....]
    at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
    at org.json.JSONObject.<init>(JSONObject.java:179)
    at org.json.JSONObject.<init>(JSONObject.java:326)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
    at com.zhiren.common.shengcssjkUtil.main(shengcssjkUtil.groovy:14)

上面是報出來的異常,用了好多方法都不行,文件讀取內容沒有錯,方法大家可以在網上找,下面是我寫的方法:

 1 /**
 2      * 根據指定文件路徑讀取文件內容
 3      * @param filePath 文件路徑
 4      * @return 文件內容
 5      */
 6     def static String getContentFromFile(String filePath) {
 7         try {
 8             String encoding = "UTF-8";//定義編碼格式
 9             File file = new File(filePath);
10             if(file.isFile() && file.exists()) {//判斷文件是否存在
11                 InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file));
12                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
13                 StringBuilder sbData = new StringBuilder();
14                 String data = "";
15                 while((data = bufferedReader.readLine()) != null) {
16                     sbData.append(data);
17                 }
18                 bufferedReader.close();
19                 inputStreamReader.close();
20                 return sbData.toString();
21             } else {
22                 return "文件不存在!";
23             }
24         } catch(Exception e) {
25             e.printStackTrace();
26             return "文件讀取異常!";
27         }
28     }

下面是解析獲得文件內容的方法,引用的jar包是import org.json.JSONObject;

1 String filePath = "web-app/shengcssjk/yiq/yiqConfig.txt";//文件路徑
2 String data = FileUtil.getContentFromFile(filePath);//獲取文件內的內容
3 JSONObject jsonData = new JSONObject(data);

這樣解析就會出現上面的異常錯誤,也可能會出現其他類型的異常錯誤,調試很久終沒結果,后來想到可能是grails框架問題,解析json串可能有框架自己的方法,后來查閱,找到如下方法,問題解決:

1 def data = new File(filePath).text;
2 def slurper = new JsonSlurper();
3 def jsonData = slurper.parseText(data);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM